Rails - 当我推送到生产环境时我会丢失我的开发数据库吗?

Rails - Will I lose my development database when I push to production?

我知道这可能是个愚蠢的问题但是...

简单地说,我有一个应用程序在开发模式下有数百条记录的数据库。当我推送到生产环境并部署到互联网上时,我是否会丢失我的数据库并且必须在生产模式下全部重做?

只是为了安全!

某种程度上,您不会丢失数据本身,它存储在您为开发环境配置的数据库中,但您的生产环境可能配置了另一个数据库,该数据库将为空。

您可以从开发环境复制数据库并配置 rails 以在生产环境中使用它。取决于您使用的数据库类型:mysql、sqlite 等。

您的生产数据库未被推送。当您在生产服务器上 运行 rake exec db:migrate 时,将创建一个包含您的模式的空数据库。

如果您想自动将开发数据库记录添加到生产数据库,有一个名为 yaml_db 的 gem。它易于使用,适用于 MySQL 和 PostgreSQl。 https://github.com/yamldb/yaml_db

在gem文件中:

gem 'yaml_db'

然后,在您的控制台中

$ bundle install
rake db:data:dump   ->   Dump contents of Rails database to db/data.yml
rake db:data:load   ->   Load contents of db/data.yml into the database

查看规范了解所有详细信息。

已编辑:加法

RAILS_ENV=development bundle exec rake db:data:dump
RAILS_ENV=production bundle exec rake db:data:load