2014-04-15 83 views
0

如果我理解正确的话,如果我跑:如何删除我在Ruby on Rails中创建的博客?

rm deveopment.sqlite3 schema.rb

它会删除数据库文件和模式文件,然后我重新创建耙数据库迁移文件,但我会删除整个博客并从头开始或将这些命令让我保持加载博客结构文件,并重新创建数据库?不确定哪个选项是最好的。

+2

请参阅:['重置数据库]](http://guides.rubyonrails.org/migrations.html#resetting-the-database),如果您希望在没有任何数据的情况下启动! – vee

回答

0

.sqlite3文件是SQLite安装中的实际数据库。

schema.rb文件是数据库结构的时间点表示。这意味着每次你改变一个数据库的结构(添加一个表,删除一个表,向表中添加一个字段,添加或删除一个索引等),这个文件将被rake改变以反映当前的结构数据库。请注意,该文件中没有数据。

如果删除数据库(以及为此事schema.rb文件)一个

耙分贝:设置

实际上执行以下三个耙命令:

rake db:create

rake db:migrate

耙分贝:种子

所以,如果你有你的迁移完整和你的种子文件完好无损,擦除schema.rb和* .sqlite3文件将删除该数据库(和它的所有数据)和反映的当前数据库模式,而不是迁移文件或种子数据。您将能够重新生成数据库(只有种子的数据,没有其他数据)与

耙分贝:设置

,请注意该development.sqlite3是3种不同的一个可能存在的数据库,其他的则是生产和测试。

但是,如果你愿意的基础复位,更好的方法将是一个

耙分贝:重置

请仔细阅读Migrations Guide如果您需要了解更多的相关信息。

+0

谢谢。这是有道理的。所以,如果我理解正确,我会运行rake db:reset,然后再次构建脚手架和迁移文件。正确? – user3533000

+0

不是。所有你的模型和控制器以及脚手架创建的视图都不会受到数据库重置的影响。你不应该再次运行脚手架。如果你想要撤销脚手架,这是不可行的。 –

+0

如果你想撤销脚手架(这将删除数据库中的所有数据为相关模型,删除所有的应用程序文件,资产等)检查[这个问题](http://stackoverflow.com/questions/963420 /撤消,脚手架在护栏)。 –

相关问题