`

关于rails generate migrate 修改字段类型

阅读更多
有几种写法,最早就是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中应用Ext.tree:以中国的省市地区三级联动选择为例

    然后,通过运行`rails db:migrate`来执行数据库迁移。 在模型定义完成后,作者会展示如何创建控制器来处理数据的获取和更新。在`provinces_controller.rb`、`cities_controller.rb`和`districts_controller.rb`中,...

    ruby on rails 实例depot

    创建新模型后,使用`rails generate migration`创建迁移文件,定义数据库表的字段和结构,然后运行`rails db:migrate`执行迁移。 6. **控制器(Controllers)**:控制器处理HTTP请求并调用模型进行业务处理。比如,...

    rails有用的命令

    - `rails generate controller Say`:生成一个名为“Say”的控制器,包含默认的index、new、create、edit、update、destroy动作。 4. **URL与控制器/动作关联**: - URL `http://rubyonrails.com/say/hello` 中,...

    rails登陆注册

    接下来运行`rails db:migrate`命令,将数据库表结构更新。 接着,我们需要一个用户控制器(User Controller)来处理用户的注册和登录请求。创建控制器可以使用: ```bash rails generate controller Users ``` ...

    基于ruby on rails 的简单blog

    3. **生成模型**:使用`rails generate model Post title:string content:text`创建一个Post模型,包含title和content字段。 4. **迁移数据库**:运行`rails db:migrate`命令创建对应的数据库表。 5. **生成控制器**...

    基于Ruby语言的Ruby on Rails项目及其代码方案

    - **说明**:此命令用于创建一个名为User的模型,并包含两个字段:name(字符串类型)和email(字符串类型)。 - **执行结果**:会生成对应的模型文件以及数据库迁移文件。 3. **更新数据库** - **命令**: ```...

    基于Rails2.2.2的自建的CRUD项目视频

    接着,你将学习如何创建模型,比如`rails generate model Blog title:string content:text`,这将生成一个名为`Blog`的数据库表,包含`title`和`content`字段。 【标签】"源码 工具" "源码"标签意味着你将接触到...

    devise_sms_verifiable:模块提供短信功能,易于使用和定制

    $ rails generate devise_sms_verifiable:install否则使用这个生成器: $ rails generate devise:install生成迁移: $ rails generate devise_sms_verifiable:migration并运行rake db:migrate 。 迁移将向模型添加...

    rails2.0下实现《rubyonrails》中的mybook实例

    bundle exec rails generate migration CreateBooks title:string author:string published_at:date ``` 然后运行`rake db:migrate`来执行这个迁移。 5. **数据库操作**:现在你可以通过ActiveRecord模型与...

    基于sqlite的ror例子

    运行`rails db:migrate`命令执行迁移,这会根据迁移文件中的指令修改数据库结构。上述例子中,这会创建一个`users`表,包含`name`和`email`两个字段。 五、ActiveRecord操作 ActiveRecord提供了许多方便的方法来...

    Ruby-尝试搭建一个类似Emacs中文网的多人博客

    rails generate model Post title:string content:text author:string created_at:datetime updated_at:datetime ``` 接着,运行数据库迁移以创建相应的数据库表: ```bash rails db:migrate ``` 然后,创建一个`...

    Ruby-ImpressionistRails插件跟踪页面展示和浏览量

    接着,通过rails generate impressionist:install命令生成必要的迁移文件,并执行rake db:migrate来更新数据库。 在Rails应用中使用Impressionist,你可以轻松地在模型上添加`has_many :impressions`关系,这样就...

    rails4noobs:在Ruby on Rails上存储库!

    通过运行`rails generate migration`生成迁移,然后编辑迁移文件添加所需的字段。`rails db:migrate`命令将这些更改应用到数据库。 4. **模型(Model)**:创建存储库对应的ActiveRecord模型。模型类通常与数据库表...

    sample_app:Ruby on Rails教程:示例应用程序

    使用`rails generate model`命令,例如`rails generate model User name:string email:string`,会生成一个User模型,包含name和email字段。然后运行`rails db:migrate`来执行数据库迁移,创建对应的users表。 控制...

    針對 netzke 使用 authlogic 做登录验证

    3. **设置数据库**:更新迁移文件以添加必要的字段,如username、email和password_hash等,然后运行`rails db:migrate`。 4. **配置Authlogic**:在User模型中启用Authlogic,设置加密策略(如BCrypt)并配置其他...

    待办事项:教程-使用Rails创建一个简单的ToDo应用程序

    打开生成的迁移文件,在`change`方法中添加字段,然后运行`rails db:migrate`执行迁移。 现在,我们需要创建控制器处理HTTP请求。运行`rails generate controller Todos`,这将创建一个名为Todos的控制器,包含默认...

    Ruby on Rails框架程序连接MongoDB的教程

    rails generate scaffold project name:string --orm=mongo_mapper ``` 这将生成一个名为`Project`的模型,一个对应的控制器,以及视图文件。在`app/models/project.rb`中,你会看到模型类像这样: ```ruby class ...

    Ruby-Shift一个帮助您在MySQL数据库中运行模式迁移

    例如,你可以创建一个新文件,用`rails generate migration AddColumnNameToTableName column:type`命令,这里的`ColumnName`是你想添加的字段名,`type`是字段的数据类型,如`string`、`integer`或`boolean`。...

    train_system:Ruby和Rails Ruby数据库基础知识火车系统,库(两天项目)

    开发者可以创建一个新的迁移文件,使用`rails generate migration`命令,然后在该文件中定义数据库表的变更,如添加字段、修改字段类型或创建索引。执行`rake db:migrate`命令,Rails会自动更新数据库结构。 4. **...

    ruby-on-rails-tutorial-3rd-microblog:Bilgi 演讲的微博应用实现

    运行`rails generate model Post title:string content:text`创建一个名为`Post`的模型,包含`title`和`content`字段。然后运行`rake db:migrate`来执行数据库迁移,创建对应的posts表。 五、控制器与动作 控制器...

Global site tag (gtag.js) - Google Analytics