ruby-on-rails - 使用 rake db :create:all 创建 Postgres RDS

标签 ruby-on-rails ruby postgresql amazon-web-services

我有一个正在迁移到 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:解决方案 我已经解决了这个问题并想分享我的经验教训:

  1. 似乎正在运行 rake db:migrate来自远程主机的命令不起作用。这可能是可行的,但我无法弄明白。
  2. 解决它的方法实际上是通过 SSH 连接到 Deis 集群中的应用程序容器并运行 rake db:createrake 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/

相关文章:

javascript - TypeError : gapi. client.plus 未定义

ruby-on-rails - 具有单表继承的 Rails ActiveRecord_Associations_CollectionProxy

sql-server - 在 SQL Server 和 Postgresql 中将字符串转换为 datetimeoffset

ruby-on-rails - 检查数组的每个元素是否包含在另一个数组的一组值中

ruby-on-rails - has_many 嵌套表单,其中包含 has_one 嵌套表单

ruby-on-rails - Rails faye 服务器无法启动

c++ - 用 C++ 编写 PostgreSQL 函数

ruby-on-rails - RABL 和 XML 格式化

ruby-on-rails - Thinking sphinx - 带条件连接的索引 (has_and_belongs_to_many)

ruby-on-rails - 为什么电子邮件没有进入 ActionMailer::Base.deliveries 表?