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 文件

  

posted @ 2017-02-28 11:05  Angelia*  阅读(669)  评论(0编辑  收藏  举报