一直知道rails里面用migrate来进行数据库的版本控制,还是比较浅显易懂,做做笔记。
RoR的官方Wiki上有两篇文章:
http://wiki.rubyonrails.com/rails/pages/UnderstandingMigrations
http://wiki.rubyonrails.com/rails/pages/UsingMigrations
如何使用:
1. Create a migration
ruby 代码
- ruby script/generate migration description_of_migration
命名提示:
a.Migration的命名规则和model,controller一样
b.给一个mingration取一个和已经有的model类一样的名字会导致rake db:migrate诡异地失败(??未测试)
2. Edit the code to tell it what to do.
Edit the newly created file (in db/migrate). Define the up and a down methods.
3. Run the migration with Rake
ruby 代码
Tables
create_table
一个ID字段(主健)会被自动创建,对于has_and_belongs_to_many表来说,可以用:id=>false来取消
ruby 代码
- class AddTags < ActiveRecord::Migration
- def self.up
- create_table :images_tags, :id => false do |table|
- table.column :image_id, :integer
- table.column :tag_id, :integer
- end
- create_table :tags do |table|
- table.column :name, :string
- end
- end
-
- def self.down
- drop_table :tags
- drop_table :images_tags
- end
- end
合法的字段类型包括:integer, float, datetime, date, timestamp, time, text, string, binary, and boolean. 合法的字段选项包括:limit, null (比如说 :null => false 表示 NOT NULL), 以及 default (来设定默认值).
create_table可以有很多参数(见API参考)。有一个是options,可以将用原始的sql语句来添加到表后面作限制,比如说字符编码,表的类型等,比如:
ruby 代码
- create_table(:families, :options => 'DEFAULT CHARSET=UTF8') do |t|
Columns
Migrations work with columns in create_table and also with add_column.
Options when running rake db:migrate
Migrate to a specific version
ruby 代码
- rake db:migrate VERSION=17
Migrate a specific database
ruby 代码
- rake environment RAILS_ENV=production db:migrate
分享到:
相关推荐
要运行迁移,请单击“ Run Rails Migration $ bundle exec rake db:migrate 已知的问题 没有任何 发行说明 1.0.0 最初发布的rails-auto-migrate 1.0.2 修复自动迁移 想要查询更多的信息 享受!
通过`rails generate migration AddTitleToPosts title:string`创建迁移,然后运行`rails db:migrate`执行迁移。 - **ActiveRecord查询接口(Query Interface)**:ActiveRecord提供了丰富的查询API,如`User.find...
`rails generate migration AddColumnToBooks column:type`会生成一个新的迁移文件,然后通过`rails db:migrate`执行迁移,更新数据库。 7. **路由(Routing)** Rails的路由系统将URL映射到控制器的动作上,定义...
- **Database Migration**:数据库结构的变化会通过迁移文件来实现,运行`rake db:migrate`进行更新。 - ** erb**:ERB(Embedded Ruby)是Rails中的视图模板语言,允许在HTML中嵌入Ruby代码。 - **Helper**:辅助...
使用`rails generate migration`命令可以创建新的迁移,然后通过`rails db:migrate`命令应用这些变化。 9. **测试驱动开发(TDD)** Rails鼓励使用TDD,提供Rspec和Test::Unit等测试框架。开发者应先编写测试,然后...
2. **数据库迁移**:了解如何使用ActiveRecord的迁移工具(Migration)来修改数据库结构,如添加、删除或修改字段。 3. **路由**:Rails的路由系统如何将URL映射到特定的控制器和动作,以及如何自定义路由规则。 4...
rails g migration CreateTableName ``` 在生成的迁移文件中编写你的SQLServer 2000兼容的表结构,然后运行迁移: ```bash rails db:migrate RAILS_ENV=sqlserver2000 ``` 如果一切顺利,你现在应该能够使用Rails...
Spring是Rails的预加载器。Spring 能够通过保持应用运行在后台,来提升开发模式下的速度。使得不需要在执行test,rake task以及migration时每次都加载。 标签:Spring
文档深入探讨了Rails中的数据库迁移(Migration)机制,解释了为何要使用Migration,即通过一系列预定义的脚本来更新数据库结构,而不直接修改数据库表。Migration提供了一种安全、可控的方式来管理和记录数据库模式...
创建新模型后,使用`rails generate migration`创建迁移文件,定义数据库表的字段和结构,然后运行`rails db:migrate`执行迁移。 6. **控制器(Controllers)**:控制器处理HTTP请求并调用模型进行业务处理。比如,...
- **定义数据库表**:使用 `rails generate migration CreateTodos title:string description:text` 命令来生成迁移文件,然后运行 `rails db:migrate` 来更新数据库。 - **创建控制器**:使用 `rails generate ...
14. **数据库迁移(Database Migrations)**: 当数据库结构需要变化时,使用`rails generate migration`创建迁移文件,然后通过`rails db:migrate`来执行迁移。 15. **Rails Console**: 交互式的命令行工具,可以...
7. **数据库迁移**:使用`rails generate migration`创建数据库迁移,可以方便地修改数据库结构,这些更改会在数据库中同步。 8. **erb模板**:Rails中的视图通常由ERB(Embedded Ruby)模板构成,它允许在HTML中...
9. **数据库迁移(Database Migration)** Rails使用ActiveRecord库处理数据库操作。在`db/migrate`目录下,你可以编写迁移文件来修改数据库结构。使用`rails db:migrate`命令执行迁移。 10. **测试(Testing)** ...
`rails g migration AddColumnToTableName column_name:type`会生成一个新迁移,添加指定列到指定表。 9. **Scaffold**: - `rails generate scaffold Product title:string description:text image_url:string`:...
- 通过创建迁移文件来改变数据库结构,`rails generate migration`命令用于生成迁移,然后在迁移文件中添加数据库操作,最后运行`rake db:migrate`执行迁移。 10. **Scaffolding**: - Rails的scaffolding功能...
5. **Rails发电机**:用于自动化生成代码,如model、controller、migration等,提高开发效率。 6. **Migrations**:数据库版本控制,允许开发者以声明式的方式对数据库结构进行修改,便于团队协作和数据库迁移。 7...
- **数据库迁移**:使用Rails提供的Migration功能来进行数据库表结构的升级和降级。 - **模板系统**:掌握ERB(Embedded Ruby)模板语法,实现动态页面的渲染。 - **单元测试**:编写测试用例确保代码质量,使用...
从官网上下载的最新的rails4.0.3开发教材。不足之处是mobi版的,需要kindle阅读器,好在这个阅读器也是免费的。