Rails数据库迁移
来源:互联网 发布:生化危机6盗版端口 编辑:程序博客网 时间:2024/06/05 19:28
Rails数据库迁移基本操作
目录
- 1安装ruby
- 2安装mysql
- 3安装migrations
- 4添加Rakefile文件,并加入内容
- 5添加数据库配置(在db目录下的config.yml文件中)
- 5.1手动创建数据库
- 5.2配置config.yml
- 6创建数据库迁移
- 7编辑生成的XXXXXX.rb 文件:
- 7.1创建表
- 7.2支持的数据类型
- 7.3表的操作
- 7.3.1创建表
- 7.3.2删除表(表名)
- 7.3.3重命名表(旧表名,新表名)
- 7.3.4增加列(表名,列名,列类型,属性)
- 7.3.5移除列(表名,列名)
- 7.3.6重命名列(表名,旧列名,新列名)
- 7.3.7修改列(表名,列名,列类型,属性)
- 7.3.8增加索引(表名,列名,属性)
- 7.3.9移除索引(表名,列名)
- 8执行迁移
- 9回滚
- 10搭建数据库
- 11重建数据库
安装ruby
apt-get install ruby-dev
安装mysql
apt-get install libmysqlclient-dev gem install mysqlapt-get install mysql-server
安装migrations
gem install standalone_migrations
添加Rakefile文件,并加入内容
touch Rakefile vi Rakefile require 'standalone_migrations'StandaloneMigrations::Tasks.load_tasks
添加数据库配置(在db目录下的config.yml文件中)
通过rake -T列出可以执行的所有rake任务
手动创建数据库
mysql -uroot -pchina-opscreate databases ecloud_financial;
或者编辑好config.yml后执行rake db:create
rake db:create
完成创建database操作
配置config.yml
mkdir dbtocuh config.yml
development: adapter: mysql encoding: utf8 reconnect: false database: ecloud_financial pool: 5 username: root password: china-ops socket: /var/run/mysqld/mysqld.sockproduction: adapter: mysql encoding: utf8 reconnect: false database: somedatabase_dev pool: 5 username: root password: socket: /var/run/mysqld/mysqld.socktest: &test adapter: sqlite3 database: db/test.sqlite3 pool: 5 timeout: 5000
创建数据库迁移
rake db:new_migration name=test_create_table
编辑生成的XXXXXX.rb 文件:
创建表
class TestCreateTables < ActiveRecord::Migration def change create_table :test_tables do |t| t.string :name t.column :is_active, :integer, default: 0 t.column :status, :boolean, default: true t.integer:code t.string :limitation end endend
执行迁移时如果表存在删除后再执行创建用:force: true创建表执行:rake db:setup
class TestCreateTables < ActiveRecord::Migration def change create_table :test_tables ,force: true do |t| t.string :name t.column :is_active, :integer, default: 0 t.column :status, :boolean, default: true t.integer:code t.string :limitation end endend
支持的数据类型
Active Record 支持的数据类型包括:
:binary :boolean :date :datetime :decimal :float :integer :primary_key :string :text :time :timestamp
表的操作
创建表
create_table(table,options) do |t|...columns...end
删除表(表名)
drop_table(table)
重命名表(旧表名,新表名)
rename_table(table,new_name)
增加列(表名,列名,列类型,属性)
add_column(table,column,type,options)
移除列(表名,列名)
remove_column(table,column)
重命名列(表名,旧列名,新列名)
rename_column(table,column,new_name)
修改列(表名,列名,列类型,属性)
change_column(table,column,type,options)
增加索引(表名,列名,属性)
add_index(table,column,options)
移除索引(表名,列名)
remove_index(table,column)
执行迁移
rake db:migrate
回滚
rake db:rollback
这个命令会回滚上一次迁移,撤销 change 方法中的操作,或者执行 down 方法。如果想撤销多个迁移,可以使用 STEP 参数:
rake db:rollback STEP=3
这个命令会撤销前三次迁移。db:migrate:redo 命令可以回滚上一次迁移,然后再次执行迁移。和 db:rollback 一样,如果想重做多次迁移,可以使用 STEP 参数
rake db:migrate:redo STEP=3
搭建数据库
rake db:setup 任务会创建数据库,加载模式,并填充种子数据。
重建数据库
rake db:reset 任务会删除数据库,然后重建,等价于 rake db:drop db:setup。
0 0
- Rails 数据库迁移(Migrations)
- Rails数据库迁移
- Ruby on Rails,数据库迁移命令和迁移任务编写
- Ruby on Rails,数据库迁移命令和迁移任务编写
- ruby on rails入门笔记(1)-数据库迁移
- Ruby on Rails,数据库迁移任务出错后的解决办法
- rails 迁移migrate model对应的数据库字段类型
- Ruby on rails 实战圣经:数据库迁移 - Migrations
- Rails中常见的数据库迁移命令总结
- Ruby on rails 实战圣经:数据库迁移 - Migrations
- Ruby On Rails--Active Record Migrations(数据库迁移)
- 跨越边界: Rails 迁移
- 跨越边界: Rails 迁移
- rails 中的迁移Migration
- ruby on rails 【语法大全2】【模型(Models)】数据库迁移(Migrations)
- Ruby on Rails,rake工具使用和数据库migrations迁移的概念
- Rails学习笔记(2) ————migration(数据库迁移)
- rails 迁移的相关知识
- jsp页面格式化日期 用jstl的fmt:formatDate 标签
- 仿微信 (iOS版)
- form传值方法
- 关于iOS中图片加载的两种方式的区别以及和内存的关系
- ArcGIS for Server 10.3.X 新型紧凑型缓存的解读和应用
- Rails数据库迁移
- android gradle引入nexus中的jar包
- LeanCloud 调研
- struts与jsp之间的值传递
- linux epoll 模型
- redis常见操作命令-set
- The account xxxxx has no team with ID xxxxxx
- maven插件_Apache Maven WAR Plugin
- ioctl