Ruby on rails 如何在不进行迁移的情况下切换Rails数据库?
我有一个Rails应用程序,它在我的Ruby on rails 如何在不进行迁移的情况下切换Rails数据库?,ruby-on-rails,ruby,database,migration,backup,Ruby On Rails,Ruby,Database,Migration,Backup,我有一个Rails应用程序,它在我的config/database.yml中使用dbmy_database\u development: development: <<: *default database: my_database_development development: <<: *default database: my_prev_database 现在,当我运行rails服务器时,它们会给我一个ActiveRecord::PendingM
config/database.yml
中使用dbmy_database\u development
:
development:
<<: *default
database: my_database_development
development:
<<: *default
database: my_prev_database
现在,当我运行rails服务器
时,它们会给我一个ActiveRecord::PendingMigrationError。要解决此问题,请运行:bin/rails db:migrate rails\u ENV=development
。当我运行该命令时,my_prev_数据库
被清除。我不想那样。我想使用我的_prev_数据库
及其所有数据(我从某处备份的数据)
如何在Rails中有效地切换数据库
谢谢大家! 我现在无法复制上述问题。(不知道为什么,可能是我复制数据库时出错了。) 另外,一种可能的解决方案是将表从
myu-prev\u数据库
复制到myu-database\u-development
请注意,对类似问题进行故障排除的人员:
评论人士提到,,
-运行
railsdb:migrate
不应该删除数据库数据当您切换数据库时,您将拥有新的schema\u迁移
表。在新数据库中,schema\u迁移
是空的,所以Rails会认为您有pending\u迁移
。我认为您需要在新数据库中重新迁移。您可以使用诸如数据库转储之类的功能将数据从旧数据库迁移到新数据库是否为与当前Rails应用程序具有相同表的数据库?ActiveRecord::PendingMigrationError
基本上意味着您的数据库与应用程序的当前状态不同步,并且可能不兼容。为什么要在应用程序中使用该数据库?是否可以选择签出与数据库版本匹配的应用程序的旧版本?对我来说,这听起来像个问题。运行迁移不会删除数据。除非迁移本身删除数据。而且,您不能切换到处于不同状态的备用数据库,即不是最新的迁移。是的,忘了提到my_prev_数据库
具有rails所需的所有精确行和表app@spickermann应用程序版本完全相同。我曾经在heroku上运行Rails应用程序。现在我正在将应用程序传输到AWS。所以我将我的应用程序克隆到AWS。现在我从Heroku下载了一个pg转储,并希望在AWS中使用它。