自从我从 Micheal Hartl 的教程中学习 Rails 以来,我所有的应用程序都设置为在开发中使用 SQLite3,但在生产中使用 Postgresql。这会导致在开发中有效但在生产中无效的搜索出现问题。从其他 Stack overflow 问题中,我了解到在不同的环境中使用不同的数据库不是一个好主意。
我认为我最好的解决方案是将开发数据库更改为 Postgresql。但我确信这不像在我的 gemfile 中调整数据库名称那么简单。我还需要做出哪些其他改变?我应该注意哪些潜在的副作用?
提前感谢您的任何见解。
最佳答案
有两种方法。
第一种方式:
以下是将 sqlite 转换为 postgres 的步骤。
- 安装 postgres。
- 更改 Rails 应用中的 Gemfile 并添加 PG gem。
- 运行捆绑安装。
- 更改 database.yml 文件以使用 postgres。
- 运行
rake db:setup
,然后运行 rake db:migrate
。
一切都应该按预期工作,因为使用 rake db:setup
和 rake db:migrate
您将获得与以前相同的数据库。
第二种方式:
现在 rails 还提供了直接将数据库从一个数据库更改为另一个数据库的方法,您可以查看 here .
只需使用下面的命令就可以了。
bin/rails db:system:change --to=postgresql
也复制数据:
如果你也想复制数据,你可以使用yaml_db gem 。
关于ruby-on-rails - 在更改我的开发数据库之前我应该知道什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56737884/