【问题标题】:Rails: Migration and database differences between development and productionRails:开发和生产之间的迁移和数据库差异
【发布时间】:2017-04-25 17:24:02
【问题描述】:

我最近在 heroku 上部署了一个网站,但我遇到了数据库问题。我在 Rails 上使用 ruby​​,当我第一次创建本地数据库时,我使用 SQLite。在部署到 heroku 时,我不得不将我的数据库更改为 Postgres,在此过程中,几个迁移文件被删除并变成了一个迁移。现在,当我在本地主机上运行 postgres 数据库时,我仍然可以看到数据库中的所有列,但是当我访问 heroku 上的页面时,其中一列丢失了。

我已经检查了我的本地控制台和 heroku 控制台,并且数据库现在不同了。本地控制台包括数据库中的所有列,heroku 控制台缺少数据库中的一列,但正在正确生成所有其他列。我尝试在 heroku 上运行 rake 任务,并将最新的更改推送到 heroku。

我尝试添加额外的迁移以将缺少的列添加到数据库中,但是每当我尝试对迁移进行 rake 迁移时,它都会告诉我该属性已经存在。感谢我能得到的任何帮助!

【问题讨论】:

标签: ruby-on-rails heroku migration


【解决方案1】:

在 heroku 上设置数据库的最佳方法是使用

rake db:schema:load

来自guides on migrations

迁移,尽管它们可能很强大,但不是权威来源 为您的数据库架构。该角色属于 db/schema.rb 或 Active Record 通过检查数据库生成的 SQL 文件。他们 不是为编辑而设计的,它们只是代表当前状态 数据库。

没有必要(而且容易出错)部署一个新的 通过重播整个迁移历史记录的应用程序。它简单得多 并且更快地将当前的描述加载到数据库中 架构。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-22
    • 1970-01-01
    相关资源
    最近更新 更多