我有一个正在迁移到 Deis 的应用程序,并希望将 RDS 用于我的 Postgres 实例。我已经设置了 Postgres,但如果我运行 rake db:create:all
从我的本地机器,配置为指向 RDS,我得到:
This task only modifies local databases. <db_name> is on a remote host.
有没有办法从现有迁移或 schema.rb 文件创建数据库?
更新 1
这是 database.yml
文件。所有环境都继承默认
default: &default
adapter: postgresql
encoding: utf8
pool: 5
username: <db user I created>
password: <PW>
host: <my_unique_host>.us-east-1.rds.amazonaws.com
port: 5432
更新 2
关于仅创建数据库然后运行 db:migrate
的评论像往常一样,这正是我没有看到的行为。如果我激活数据库并运行 rake db:migrate
,该过程完成,并向我展示了一条新的终端线。没有创建表/列。
我是否最好尝试进行本地数据库转储并将其恢复到 RDS 中?
更新 3:解决方案 我已经解决了这个问题并想分享我的经验教训:
- 似乎正在运行
rake db:migrate
来自远程主机的命令不起作用。这可能是可行的,但我无法弄明白。 - 解决它的方法实际上是通过 SSH 连接到 Deis 集群中的应用程序容器并运行
rake db:create
和rake db:migrate
.这 ack 回复说表已创建,我能够在 psql 提示符下进行验证。
希望这对您有所帮助。
最佳答案
您必须手动完成由 rake db:create:all [1] 完成的部分,因此连接到 DBMS 并通过运行命令创建数据库
CREATE DATABASE db_name CHARACTER SET utf8;
迁移可以通过rake db:migrate
以正常方式完成
关于ruby-on-rails - 使用 rake db :create:all 创建 Postgres RDS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32662299/