Rails Migration 文件是不是可以 “用后即焚”?

fenprace · 2012年08月30日 · 最后由 chentianwen 回复于 2012年08月31日 · 3048 次阅读

rake db:migrate 一遍后,就会生成 schema.rb,这时 Migration 文件存在还有什么意义?

共收到 8 条回复

你对这两个文件有点误解..migrate可以说是数据库的版本控制。schema是反映当前数据库结构的

想要后悔药吗?

#2楼 @leekelby 指的是借助 Migration 可以 rollback 吗? 只要知道当前数据库结构,再写一个 Migration 不就行了?

#3楼 @fenprace 有方便干嘛不用,真这样的话像java一样一个个字符敲也可以。直接在schema.rb里写代码~

#1楼 @jjym schema.rb到底有什么用啊,“反映数据库结构” 只是给人看的?

看我之前提这个帖子的讨论: http://ruby-china.org/topics/4917

其实schema.rb开头的说明已经很清楚了。

# This file is auto-generated from the current state of the database. Instead # of editing this file, please use the migrations feature of Active Record to # incrementally modify your database, and then regenerate this schema definition. # # Note that this schema.rb definition is the authoritative source for your # database schema. If you need to create the application database on another # system, you should be using db:schema:load, not running all the migrations # from scratch. The latter is a flawed and unsustainable approach (the more migrations # you'll amass, the slower it'll run and the greater likelihood for issues). # # It's strongly recommended to check this file into your version control system.

#5楼 @valentine schema.rb 删掉不会对当前程序运行有任何影响。但有两种情况我感觉schema.rb很有用: 查看一个开源代码的数据库结构,如果看migration会头大,但看schema一目了然。 还有就是对于一些烂尾的项目migrate太多可能会执行出错,就直接rake db:schema:load

schema.rb是用于显示当前数据库结构的,一般会被用于测试环境中,用来创建测试数据库的。最好不要删。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册