Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails,在Git push上重置数据库_Ruby On Rails_Ruby_Git_Openshift - Fatal编程技术网

Ruby on rails Rails,在Git push上重置数据库

Ruby on rails Rails,在Git push上重置数据库,ruby-on-rails,ruby,git,openshift,Ruby On Rails,Ruby,Git,Openshift,更新:我的生产数据库实际上也设置为sqlite。然而,这并不能解释擦拭 原件: 我目前正密切关注迈克尔·哈特尔的研究,几乎到了不折不扣的地步。唯一的区别是我使用OpenShift部署我的应用程序,带有PostgreSQL盒带。不幸的是,每次我推到openshift时,服务器都会重新启动我的应用程序(正常),数据库也会被删除(我想不是正常的吧?)。然后我必须重新运行所有迁移,并再次填充数据库。我还注意到,如果我从OpenShift中执行拉操作,那么我的本地数据库(我的计算机上的sqlite)也会被

更新:我的生产数据库实际上也设置为sqlite。然而,这并不能解释擦拭

原件:

我目前正密切关注迈克尔·哈特尔的研究,几乎到了不折不扣的地步。唯一的区别是我使用OpenShift部署我的应用程序,带有PostgreSQL盒带。不幸的是,每次我推到openshift时,服务器都会重新启动我的应用程序(正常),数据库也会被删除(我想不是正常的吧?)。然后我必须重新运行所有迁移,并再次填充数据库。我还注意到,如果我从OpenShift中执行拉操作,那么我的本地数据库(我的计算机上的sqlite)也会被擦除

这是我的档案:

source 'https://rubygems.org'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails',        '4.2.0.rc1'
gem 'bcrypt',       '3.1.7'
gem 'bootstrap-sass',   '3.2.0.0'
gem 'sass-rails',   '~> 5.0.0.beta1'
gem 'uglifier',     '>= 2.5.3'
gem 'coffee-rails',     '~> 4.1.0'
gem 'jquery-rails', '4.0.0.beta2'   
gem 'turbolinks',   '2.3.0'
gem 'jbuilder',     '~> 2.2.3'
gem 'sdoc',         '~> 0.4.0', group: :doc

group :development, :test do
  gem 'sqlite3',        '1.3.9'
  gem 'debugger'
  gem 'web-console',        '~> 2.0'
  gem 'spring',         '1.1.3'
end

group :test do
  gem 'minitest-reporters', '1.0.5'
  gem 'mini_backtrace',     '0.1.3'
  gem 'guard-minitest',     '2.3.1'
end

group :production do
  gem 'pg',         '0.17.1'
  gem 'rails_12factor', '0.0.2'
  gem 'unicorn',    '4.8.3'
end 
这是我的.gitignore:

# Ignore bundler config.
/.bundle

# Ignore the default SQLite database.
/db/*.sqlite3
/db/*.sqlite3-journal

# Ignore all logfiles and tempfiles.
/log/*
!/log/.keep
/tmp
这是我的数据库。yml:

default: &default
  adapter: sqlite3
  pool: 5
  timeout: 5000

development:
  <<: *default
  database: db/development.sqlite3

test:
  <<: *default
  database: db/test.sqlite3

production:
  <<: *default
  database: db/production.sqlite3
default:&default
适配器:sqlite3
游泳池:5
超时:5000
发展:

听起来您的应用程序使用的是sqlite数据库而不是postgresql数据库,请仔细检查您的数据库配置。还要确保迁移中没有任何代码会清除并重新创建数据库(如“测试”设置)。是否可以发布数据库yml文件的“净化”版本


每次git推送应用程序时,它都会清除sqlite数据库的存储位置。如果要使用sqlite,需要将其存储在OPENSHIFT_DATA_DIR中,但我们建议改用mysql或postgres,以便应用程序可以根据需要进行缩放。

好的,它实际上是在生产中使用sqlite(请参阅更新).但是既然.sqlite3文件被git忽略了,为什么它会被删除呢?我刚刚意识到我最近一直在搞乱git分支;也许production.sqlite3已经连续几次被空上传,我只是没有意识到下次不会出现这种情况。我会重试,很可能很快就会接受你的答案。每次你git推送你的应用程序时如果你想使用sqlite,你需要将它存储在你的OPENSHIFT_DATA_DIR中,但我们建议你改用mysql或postgres,这样你的应用程序就可以根据你的需要进行缩放。事实上,我猜它已经被删除了。如果你在回答中添加最后一条评论,我会接受。谢谢!