自从我从Micheal Hartl的教程中学到Rails以来,我所有的应用程序都设置为在开发中使用SQLite3,但在生产中使用Postgresql。这会导致在开发中有效但在生产中无效的搜索出现问题。从其他Stack溢出问题中,我了解到在不同环境中使用不同数据库是一个坏主意。
我认为我最好的解决方案是将开发数据库更改为Postgresql。但是我敢肯定,这不像调整我的gemfile中的数据库名称那样简单。我还需要进行哪些其他更改?我应该注意哪些潜在的副作用?
在此先感谢您的见解。
答案 0 :(得分:3)
您可以通过两种方式做到这一点。
第一种方式:
以下是将sqlite转换为postgres的步骤。
rake db:setup
,然后运行rake db:migrate
。一切都会按预期进行,因为使用rake db:setup
和rake db:migrate
时,您将获得与以前相同的数据库。
第二种方式:
现在,导轨也提供了直接将数据库从一个数据库更改为另一个数据库的方法,您可以选中here。
只需使用以下命令即可完成。
bin/rails db:system:change --to=postgresql
也复制数据:
如果您还想复制数据,则可以使用yaml_db gem。