ruby-on-rails - 在更改我的开发数据库之前我应该​​知道什么?

标签 ruby-on-rails postgresql sqlite

自从我从 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:setuprake db:migrate 您将获得与以前相同的数据库。

第二种方式:

现在 rails 还提供了直接将数据库从一个数据库更改为另一个数据库的方法,您可以查看 here .

只需使用下面的命令就可以了。

bin/rails db:system:change --to=postgresql

也复制数据:

如果你也想复制数据,你可以使用yaml_db gem 。

关于ruby-on-rails - 在更改我的开发数据库之前我应该​​知道什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56737884/

相关文章:

ruby-on-rails - 有什么理由不在生产数据库上使用 Rails 迁移吗?

ruby-on-rails - 在 Rails 应用程序中重新定义 $stdout 和 $stderr 的副作用

c++ - 在 SQLite 中使用 blob 时如何处理类型错误?

ruby-on-rails - 部署后如何定义和运行 capistrano 3 任务?

javascript - Angular 路由无法正常工作

Python:获取转义的 SQL 字符串

postgresql - 在 psycopg2 中你为什么要使用 execute_batch 而不是 execute_values?

json - PostgreSQL : Append element in json array objects

android - 使用 ORMLite 创建表期间的列未与 Bean 对齐

python - SQLITE 数据库表差异