【问题标题】:What should I know before changing my development database?在更改我的开发数据库之前我应该知道什么?
【发布时间】:2019-06-24 13:40:57
【问题描述】:
自从我从 Micheal Hartl 的教程中学习 Rails 以来,我的所有应用程序都设置为在开发中使用 SQLite3,但在生产中使用 Postgresql。这会导致在开发中有效但在生产中无效的搜索出现问题。从其他堆栈溢出问题中,我了解到在不同的环境中使用不同的数据库是一个坏主意。
我认为我最好的解决方案是将开发数据库更改为 Postgresql。但我确信这并不像在我的 gemfile 中调整 db 名称那么简单。我还需要进行哪些其他更改?我应该注意哪些潜在的副作用?
提前感谢您提供任何见解。
【问题讨论】:
标签:
ruby-on-rails
postgresql
sqlite
【解决方案1】:
你可以通过两种方式做到这一点。
第一种方式:
以下是将 sqlite 转换为 postgres 的步骤。
- 安装 postgres。
- 在 Rails 应用中更改 Gemfile 并添加 PG gem。
- 运行捆绑安装。
- 将 database.yml 文件更改为使用 postgres。
- 运行
rake db:setup,然后运行rake db:migrate。
一切都应该按预期工作,因为使用rake db:setup 和rake db:migrate 您将获得与以前相同的数据库。
第二种方式:
现在 Rails 还提供了直接将 DB 从一个 DB 更改为另一个 DB 的方法,您可以查看 here。
只需使用以下命令即可完成。
bin/rails db:system:change --to=postgresql
也复制数据:
如果你也想复制数据,你可以使用yaml_db gem。