Rails – 当我推向生产时,我会丢失我的开发数据库吗?

我知道这可能是一个愚蠢的问题,但……

简而言之,我有一个应用程序,其中包含数百个处于开发模式的记录的数据库。 当我推向生产并部署到互联网上时,我是否会丢失数据库并且必须在生产模式下重做所有内容?

只是安全!

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

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

在gemfile中:

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 

排序,您不会丢失数据本身,这些数据存储在您为开发环境配置的数据库中,但您的生产环境可能会配置另一个数据库,该数据库将为空。

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