db:migrate时,Table already exist 的解决办法

        在运行rake db:migrate时,有时会发现 rake abort 的错误,rake说某个表已经存在,因此这个migrate的工作它干不了。这个表确实是已经存在的,那么如何让rake跳过这个表,或是强制覆写这个表呢?有一处需要修改:

原migrate文件:
ruby 代码
 
  1. class CreateProducts < ActiveRecord::Migration  
  2.   def self.up  
  3.     create_table :products do |t|  
  4.       t.column :title:string  
  5.       t.column :description:text  
  6.       t.column :image_url:string  
  7.     end  
  8.   end  
  9.   
  10.   def self.down  
  11.     drop_table :products  
  12.   end  
  13. end  



修改后的migrate文件:
ruby 代码
 
  1. class CreateProducts < ActiveRecord::Migration  
  2.   def self.up  
  3.     create_table :products:force => true do |t|  
  4.       t.column :title:string  
  5.       t.column :description:text  
  6.       t.column :image_url:string  
  7.     end  
  8.   end  
  9.   
  10.   def self.down  
  11.     drop_table :products  
  12.   end  
  13. end  

看出来了吗,在create_table的参数中,加上 :force => true即可。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值