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

时间:2015-03-20 17:38:19

标签: ruby-on-rails ruby database development-environment production-environment

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

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

安全!

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

您的生产数据库未被推送。在生产服务器上运行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