rails 数据迁移 -migration
1、创建一个fruits 项目:
rails new fruits -d mysql --skip-bundle
2、修改Gemfile:
source 'https://gems.ruby-china.org' gem 'rails', '~> 5.0.1' gem 'mysql2', '>= 0.3.18', '< 0.5' #rails 默认不是mysql2 需要自己添加gem 或者在创建项目的时候 -d mysql gem 'puma', '~> 3.0' gem 'sass-rails', '~> 5.0' gem 'uglifier', '>= 1.3.0' gem 'coffee-rails', '~> 4.2' gem 'jquery-rails' gem 'turbolinks', '~> 5' gem 'jbuilder', '~> 2.5' group :development, :test do gem 'byebug', platform: :mri end group :development do gem 'web-console', '>= 3.3.0' gem 'listen', '~> 3.0.5' gem 'spring' gem 'spring-watcher-listen', '~> 2.0.0'
end
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
3、配置 config / database.yml
development: # 表示 这是开发模式下的数据库配置 adapter: mysql2 # 表示 数据库的驱动 例如:mysql2, sqlite, oracle, postgres database: test_migration # 数据库名字 username: root # 连接数据库的用户名 password: 123456 # 密码
host: localhost # 数据库的ip 如果本机的数据库,就是localhost
4、创建数据库
bundle exec rake db:create
5、创建 users 表
bundle exec rails generate migration create_users
6、上面的命令创建好了 migration 也创建好了 users表 是放在
是放在 db/migration
db / migrate / 20170228020223_create_users.rb class CreateUsers < ActiveRecord::Migration[5.0] def up create_table :users do |t| 创建users表 t.string :title users表中的数据类型 列名 t.string :name t.string :age t.string :maed end end def down drop_table :users down方法跟up方法是相对的 up是创建表 down方法则是回滚没有创建user表的时候 end end
文件保存好以后 执行 :
bundle exec rake db:migrate 生成migrate 执行了这句才是创建user表 这是执行migrate中的up方法
bundle exec rake db:rollback 这是执行 migrate 中的down方法 回滚上一步操作
7、 修改列名:
修改列名 bundle exec rails generate migration rename_age_to_my 这是吧age列名修改成my
bundle exec rails generate migation rename_ 原列名 _to_ 新的列名
执行上面的命令 会在db/migration下面创建/20170224083125_rename_age_to_my.rb 文件