<< 如何简单使用Rails框架数据库移植技术 | 如何深入学习Rails框架数据库移植技术 >>
本教程由“道喜”:http://www.hhtong.com 提供,特别鸣谢!
1. 创建一个名称为 migrate_schema_understand 项目,其命令如下:
rails migrate_schema_understand
2. 修改Rails框架针对Sqlite3数据库配置文件database.yml:
development: adapter: sqlite3 database: ms_simple. db test: adapter: sqlite3 database: ms_simple. db product ion: adapter: sqlite3 database: ms_simple. db
3. 利用Rails框架代码生成器,创建模型Lesson,并且修改相关代码 001_create_lessons.rb:
ruby script/generate model Lesson
编辑新创建的 Lesson 数据移植类,文件位于 db/migrate/001_create_lessons.rb
编辑成以下内容:
class CreateLessons < ActiveRecord::Migration
def self.up
create_table :lessons do |t|
t.column :title, :string
t.column :text, :string
end
end
def self.down
drop_table :lessons
end
end
4. 针对上面配置的数据库,执行下面的移植命令,它根据上面Ruby语言代码创建数据库表。如需要,则下面的命令可以多次执行:
rake migrate

5. 利用Rails框架代码生成器,执行下面的命令,增加一个移植文件002_add_lesson_columns.rb,并且修改文件:
ruby script\generate migration add_lesson_columns

改为以下内容:
class AddLessonColumns < ActiveRecord::Migration
def self.up
add_column :lessons, :created_at, :datetime, :default => Time.now, :null => false
end
def self.down
remove_column :lessons, :created_at
end
end
6. 在我们有了新的移植文件后,说明我们想修改数据库,这样就执行下面的命令:
rake migrate
7. 现在看看数据库创建的结果,注意我们已经执行了二次上一步命令:
sqlite3 ms_understand.db
8. 下面的命令是我们想回到以前(本例是回到-1,说明清空数据库所有表和数据。小心使用!)是数据库版本:
rake migrate VERSION=-1

9. 再看看数据库的结果,真的为空数据库:
sqlite3 ms_understand.db

10. 为了创建当前版本的数据库,执行如下命令:
rake migrate
11. 打开数据库文件,得到我们想要的数据库表:
sqlite3 ms_understand.db
12. 通过下面的命令,验证上面一切是否正确:
ruby script/generate scaffold Lesson admin
13. 在DOS-Shell中输入如下命令,启动网络服务器WEBrick:
ruby script/server
14. 在浏览器的地址栏中输入下面网址,你就可以看到相关内容:
http://localhost:3000/admin/new
