【发布时间】:2018-03-01 05:30:27
【问题描述】:
我将我的数据库从 sqlite 切换到 postgres 以便在 heroku 上进行部署。当我这样做并尝试运行 heroku run rake db:migrate -a 时,我看到了这个错误: ActiveRecord::StatementInvalid: PG::DatatypeMismatch: 错误:列“pay_date”不能自动转换为日期类型提示:您可能需要指定“USING pay_date::date”。 : ALTER TABLE "recurring_payments" ALTER COLUMN "pay_date" TYPE 日期 所以我创建了一个迁移来解决这个问题,但是当我运行 rake db:migrate 来运行迁移时,我看到了这个错误:
PG::ConnectionBad: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
但是,当我检查我的服务时,我发现它正在运行,并且它被配置为侦听端口 5432。还有什么可能导致此问题?
另外,如果我将此行添加到 database.yml:
host: localhost
错误变成这样:
PG::ConnectionBad: could not translate host name "localhost" to address: Name or service not known
也许这更有希望?
【问题讨论】:
-
定义“迁移”。你在做什么?
-
令我印象深刻的是,您不太可能在 Windows 安装的 PostgreSQL 上侦听具有 unix 路径的 unix 套接字。您尝试过连接到 localhost,是吗?
-
“在 Windows 中迁移”并不能很好地描述您在做什么。您的意思是从一台 Windows 机器迁移到另一台机器吗?从 Linux 到 Windows? Windows 到 Linux?还有什么?你在哪里输入什么命令?
-
我将数据库从 sqlite 切换到 postgres 以部署在 heroku 上。当我这样做并尝试运行 heroku run rake db:migrate -a
我看到了这个错误: ActiveRecord::StatementInvalid: PG::DatatypeMismatch: ERROR: column "pay_date" cannot be cast automatically to type date 提示:你可能需要指定“使用 pay_date::date”。 : ALTER TABLE "recurring_payments" ALTER COLUMN "pay_date" TYPE 日期。所以我创建了一个迁移来解决这个问题,但是当我运行 rake db:migrate 来运行迁移时,我看到了问题中提到的错误 -
不要评论您自己的问题,而是编辑您的问题以改进它。您确定要在 Windows 系统上执行此操作吗?大多数服务器都在运行 Linux,而您问题中的错误消息闻起来像 Linux 一个
标签: ruby-on-rails windows postgresql