Ruby on Rails 中文 Wiki
如何理解Rails框架数据库移植技术

<< 如何简单使用Rails框架数据库移植技术 | 如何深入学习Rails框架数据库移植技术 >>

鸣谢

本教程由“道喜”:http://www.hhtong.com 提供,特别鸣谢!

系统环境:

  1. Ruby 语言 1.8.4版本, 点击这里Ruby1.8.4
  2. Rails 框架 1.1.2版本
  3. Windows XP 或者 Windows 2000操作系统 或者 Linux操作系统
  4. 需要一个浏览器,如FireFox1.5.0.1
  5. 开发编辑工具 Notepad2 ,安装方法请单击这里,复制一个notepad2.exe,并且更名为vi.exe
  6. 在Windows下安装Sqlite3说明,请单击这里

前提条件:

  1. 在本机Winodw操作系统上,我们的工作目录为d:/works_rails。
  2. 你的电脑必须在线。

目的:

  1. Rails框架数据库移植技术是Rails应用软件开发必须工具之一。进一步理解Rails框架数据库移植技术是本内容的重点。
  2. 我们创建项目的完整代码 migrate_schema_understand.zip

解决方案:

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