有几种写法,最早就是add remove了
class AddSsl < ActiveRecord::Migration
def up
add_column :accounts, :ssl_enabled, :boolean, :default => 1
end
def down
remove_column :accounts, :ssl_enabled
end
end
这个有个显著问题,字段值没了。
那么
rails g migration change_date_format_in_my_table
class ChangeDateFormatInMyTable < ActiveRecord::Migration
def self.up
change_column :my_table, :my_column, :datetime
end
def self.down
change_column :my_table, :my_column, :date
end
end
或者
change_table :table_name do |t|
t.change :column_name, :column_type, {options}
end
class ChangeDataTypeForWidgetCount < ActiveRecord::Migration
def self.up
change_table :widgets do |t|
t.change :count, :float
end
end
def self.down
change_table :widgets do |t|
t.change :count, :integer
end
end
end
还有一些
rename_column(table_name, column_name, new_column_name)
add_index(table_name, column_names, options)
add_index(:suppliers, :name)
#生成
CREATE INDEX suppliers_name_index ON suppliers(name)
add_index(:accounts, [:branch_id, :party_id], :unique => true)
#生成
CREATE UNIQUE INDEX accounts_branch_id_party_id_index ON accounts(branch_id, party_id)
add_index(:accounts, [:branch_id, :party_id], :unique => true, :name => 'by_branch_party')
#生成
CREATE UNIQUE INDEX by_branch_party ON accounts(branch_id, party_id)
class MakeJoinUnique < ActiveRecord::Migration
def up
execute "ALTER TABLE `pages_linked_pages` ADD UNIQUE `page_id_linked_page_id` (`page_id`,`linked_page_id`)"
end
def down
execute "ALTER TABLE `pages_linked_pages` DROP INDEX `page_id_linked_page_id`"
end
end
class AddPeopleSalary < ActiveRecord::Migration
def up
add_column :people, :salary, :integer
Person.reset_column_information
Person.find(:all).each do |p|
p.update_attribute :salary, SalaryCalculator.compute(p)
end
end
end
分享到:
相关推荐
然后,通过运行`rails db:migrate`来执行数据库迁移。 在模型定义完成后,作者会展示如何创建控制器来处理数据的获取和更新。在`provinces_controller.rb`、`cities_controller.rb`和`districts_controller.rb`中,...
创建新模型后,使用`rails generate migration`创建迁移文件,定义数据库表的字段和结构,然后运行`rails db:migrate`执行迁移。 6. **控制器(Controllers)**:控制器处理HTTP请求并调用模型进行业务处理。比如,...
- `rails generate controller Say`:生成一个名为“Say”的控制器,包含默认的index、new、create、edit、update、destroy动作。 4. **URL与控制器/动作关联**: - URL `http://rubyonrails.com/say/hello` 中,...
接下来运行`rails db:migrate`命令,将数据库表结构更新。 接着,我们需要一个用户控制器(User Controller)来处理用户的注册和登录请求。创建控制器可以使用: ```bash rails generate controller Users ``` ...
3. **生成模型**:使用`rails generate model Post title:string content:text`创建一个Post模型,包含title和content字段。 4. **迁移数据库**:运行`rails db:migrate`命令创建对应的数据库表。 5. **生成控制器**...
- **说明**:此命令用于创建一个名为User的模型,并包含两个字段:name(字符串类型)和email(字符串类型)。 - **执行结果**:会生成对应的模型文件以及数据库迁移文件。 3. **更新数据库** - **命令**: ```...
接着,你将学习如何创建模型,比如`rails generate model Blog title:string content:text`,这将生成一个名为`Blog`的数据库表,包含`title`和`content`字段。 【标签】"源码 工具" "源码"标签意味着你将接触到...
$ rails generate devise_sms_verifiable:install否则使用这个生成器: $ rails generate devise:install生成迁移: $ rails generate devise_sms_verifiable:migration并运行rake db:migrate 。 迁移将向模型添加...
bundle exec rails generate migration CreateBooks title:string author:string published_at:date ``` 然后运行`rake db:migrate`来执行这个迁移。 5. **数据库操作**:现在你可以通过ActiveRecord模型与...
运行`rails db:migrate`命令执行迁移,这会根据迁移文件中的指令修改数据库结构。上述例子中,这会创建一个`users`表,包含`name`和`email`两个字段。 五、ActiveRecord操作 ActiveRecord提供了许多方便的方法来...
rails generate model Post title:string content:text author:string created_at:datetime updated_at:datetime ``` 接着,运行数据库迁移以创建相应的数据库表: ```bash rails db:migrate ``` 然后,创建一个`...
接着,通过rails generate impressionist:install命令生成必要的迁移文件,并执行rake db:migrate来更新数据库。 在Rails应用中使用Impressionist,你可以轻松地在模型上添加`has_many :impressions`关系,这样就...
通过运行`rails generate migration`生成迁移,然后编辑迁移文件添加所需的字段。`rails db:migrate`命令将这些更改应用到数据库。 4. **模型(Model)**:创建存储库对应的ActiveRecord模型。模型类通常与数据库表...
使用`rails generate model`命令,例如`rails generate model User name:string email:string`,会生成一个User模型,包含name和email字段。然后运行`rails db:migrate`来执行数据库迁移,创建对应的users表。 控制...
3. **设置数据库**:更新迁移文件以添加必要的字段,如username、email和password_hash等,然后运行`rails db:migrate`。 4. **配置Authlogic**:在User模型中启用Authlogic,设置加密策略(如BCrypt)并配置其他...
打开生成的迁移文件,在`change`方法中添加字段,然后运行`rails db:migrate`执行迁移。 现在,我们需要创建控制器处理HTTP请求。运行`rails generate controller Todos`,这将创建一个名为Todos的控制器,包含默认...
rails generate scaffold project name:string --orm=mongo_mapper ``` 这将生成一个名为`Project`的模型,一个对应的控制器,以及视图文件。在`app/models/project.rb`中,你会看到模型类像这样: ```ruby class ...
例如,你可以创建一个新文件,用`rails generate migration AddColumnNameToTableName column:type`命令,这里的`ColumnName`是你想添加的字段名,`type`是字段的数据类型,如`string`、`integer`或`boolean`。...
开发者可以创建一个新的迁移文件,使用`rails generate migration`命令,然后在该文件中定义数据库表的变更,如添加字段、修改字段类型或创建索引。执行`rake db:migrate`命令,Rails会自动更新数据库结构。 4. **...
运行`rails generate model Post title:string content:text`创建一个名为`Post`的模型,包含`title`和`content`字段。然后运行`rake db:migrate`来执行数据库迁移,创建对应的posts表。 五、控制器与动作 控制器...