【问题标题】:Database migrations to heroku don't work数据库迁移到 heroku 不起作用
【发布时间】:2016-09-20 04:07:12
【问题描述】:

我一直在尝试将我的数据库迁移到 heroku,但没有成功。我在我的数据库中添加了更多用户,当尝试在我的 heroku 应用程序上使用电子邮件地址和密码登录时,我收到无效的电子邮件/密码错误,即使这在我的本地服务器上运行良好。执行下面描述的所有步骤时完全没有错误。

如前一篇文章所述,我尝试了以下方法:

  1. 对本地代码进行了更改
  2. 在本地运行任何迁移 - 我使用 bundle exec rake db:migrate
  3. 将所有更改的文件添加到 Git git add -A
  4. 将所有添加的文件提交到 git git commit -m "Adding features"
  5. 将更改推送到 Heroku git push heroku master
  6. heroku run rake db:migrate

运行后我得到:

astelvida:~/workspace/sample_app (master) $ heroku run rake db:migrate
Running rake db:migrate on ⬢ shrouded-ravine-80000... up, run.2794 
ActiveRecord::SchemaMigration Load (0.8ms)  
SELECT "schema_migrations".* FROM "schema_migrations"
  1. 在迁移之后执行heroku restart

我还检查了我的 .sqlite3 文件以检查新用户是否确实存在于数据库中。

我也试过这个:$ bundle exec rake db:migrate RAILS_ENV=production

我还更新了我的 gemfile.lock。

我在开发和生产方面的珍宝:

group :development, :test do
  gem 'sqlite3',     '1.3.9'
  gem 'byebug',      '3.4.0'
  gem 'web-console', '2.0.0.beta3'
  gem 'spring',      '1.1.3'
end

group :production do
  gem 'pg',             '0.17.1'
  gem 'rails_12factor', '0.0.2'
  gem 'puma',           '3.1.0'
end

注意:我运行 bundle install --without production,但这是我一直使用它的方式,并且登录数据适用于我过去创建的一些用户。我也在使用 rails 4.2.2。

【问题讨论】:

  • 提供您的 database.yml 和 heroku 登录迁移

标签: ruby-on-rails database ruby-on-rails-4 heroku railstutorial.org


【解决方案1】:

好的...让我们在这里弄清楚一些事情。

Rake db:migrate 不会迁移数据库的数据。它运行所有迁移(表创建、更新等),因此数据库结构相同,但数据不同!这是一个具有相同结构的全新数据库。

您所做的是确保您的 PG 数据库与您的 sqlite3 数据库具有相同的结构,并且确实如此。但是,如果您想将数据从一个传递到另一个,那我会说很难。您必须从您的 sqlite 3 数据库创建一个转储文件,将其更改为 pg 并在您的 heroku 应用程序中运行。

这是一个关于它的问题。

Convert SQLITE SQL dump file to POSTGRESQL

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-07
    • 2013-09-20
    • 2011-10-05
    • 1970-01-01
    • 2014-10-16
    • 2011-10-05
    • 2016-02-28
    相关资源
    最近更新 更多