`
trace
  • 浏览: 125067 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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 楼 mirway 2007-11-24  
学习了,我以前也经常出现这种问题,只知道不行了用version重新来。看来要好好学习Ruby基础了。

相关推荐

    阿里云批量上传代码制品库插件:migrate-local-repo-tool

    阿里云批量上传代码制品库插件:migrate-local-repo-tool 阿里云批量上传代码制品库插件:migrate-local-repo-tool 阿里云批量上传代码制品库插件:migrate-local-repo-tool

    db-migrate-plugin-es6cjs:db-migrate插件,用于接受.cjs文件

    当您将节点项目定义为ES6模块时,尝试导入由db-migrate工具生成的.js文件时出现错误。 [ERROR] AssertionError [ERR_ASSERTION]: ifError got unwanted exception: Must use import to load ES Module 提出的解决...

    capistrano-rails-db:Capistrano v3的Rails迁移任务(db

    Capistrano :: Rails :: Db Capistrano v3的Rails迁移任务: 在终端中运行cap -T deploy:db以获取迁移任务的完整列表: ...cap deploy:db:migrate # Run rake db:migrate Migrate the database (opti

    mongoid_rails_migrations:Mongoid的数据迁移

    $ rails db:migrate:down VERSION= $ rails db:migrate:up VERSION= $ rails db:rollback $ rails db:rollback_to VERSION= $ rails db:migrate:redo $ rails db:migrate:reset $ rails db:migrate:status $ rails ...

    sails-grunt-task-db-migrate

    grunt db:migrate:create --name = create_guests_schema grunt db:migrate:up grunt db:migrate:down --count = 150 您需要设置config/migrations.js来命名用于运行迁移的连接。 // config/migrations.js...

    migrate:PostgreSQL迁移的命令行工具

    migrate -path ./db/migrations create add_field_to_table migrate -url postgres://user@host:port/database -path ./db/migrations -timeout 10 up migrate -url postgres://user@host:port/database -path ./db/...

    redmine_password_tool:Redmine 密码管理插件

    每个项目的基于角色的访问 测试 概括 在 travis-ci.org(主分支)上 测试政策 一切都应该被测试覆盖 ...rake db:drop db:create db:migrate db:test:load db:test:prepare redmine:plugins:migrate redmine:load

    node-db-migrate:节点的数据库迁移框架

    现在可以通过以下方式使用DB-Migrate: $ db-migrate 作为本地模块 是否要使用db-migrate作为本地模块? $ npm install db-migrate 现在可以通过以下方式使用DB-Migrate: $ node node_modules/db-migrate/bin/db...

    jquery-migrate3.4版本

    jQuery Migrate 是一个插件,它的主要目的是帮助开发者平滑地过渡到较新版本的 jQuery,解决老版本代码在新版本中可能遇到的兼容性问题。在jQuery Migrate 3.4.0版本中,我们看到了对旧API和功能的维护,以及对现代...

    Django-migrate报错问题解决方案

    首先,当我们尝试使用`python3 manage.py migrate`命令迁移数据库时,如果遇到“Table XX already exists”的错误,这是因为Django尝试创建已存在于数据库中的表。为了解决这个问题,我们需要处理表与表之间的外键...

    django 做 migrate 时 表已存在的处理方法

    django.db.utils.OperationalError: (1050, "Table 'xxx' already exists") 要处理这种情况,如果是数据表都已经存在了,在migrate时直接使用 –fake-initial 来处理 python manage.py migrate –fake-initial 如果...

    图片库

    克隆/下载仓库确保Postgres数据库正在运行运行bundle install从Gemfile安装所有gem 运行rails db:drop然后运行rails db:drop rails db:create然后rails db:migrate创建数据库表要启动服务器,请运行命令rails s 在...

    instantboard-api

    Instantboard API服务器入门 # initialize$ npm run db:create$ npm run db:migrate$ npm run dev测试 # initialize$ npm run db:create$ NODE_ENV=test npm run db:migrate# run test$ npm test端到端测试 # ...

    ActiveRecord-Without-Rails:只是在没有Rails的情况下使用ActiveRecord迁移的简单示例

    migrate 创建迁移时,它应继承自ActiveRecord::Migration[5.2]自定义迁移路径该Rake文件希望你在你的迁移db/migrat4 ,但如果你想在不同的位置,编辑: #... snipActiveRecord::Migrator.migrate("lib/db/migrations...

    ridgepole-rails:在RoR上使用ridgepole的便捷任务

    山脊极轨 Ridgepole-rails提供了两个Rake任务: ridgepole:export和ridgepole:apply它们分别包装的ridgepole --export和ridgepole --apply 。 用法 要将数据库的当前架构导出到Schemafile ... db:migrate:status , db

    ruby example webrick

    ruby sample: @echo off cd D:\proj\demo ...rem load test data (it depends on the db:environment and db:migrate tasks) call rake db:load_test_data call ruby script/server webrick @echo on

    最终的

    自述文件 该自述文件通常会记录启动和运行应用程序所需的所有步骤。...rails db:migrate:reset 轨道测试 Rails G迁移add_remember_digest_to_users记住_digest:字符串 Heroku日志 Heroku打开 Heroku

    db-migrate-base:db-migrate的基本驱动程序

    4. 状态存储:db-migrate-base会在数据库中创建一个表来记录迁移的历史状态,这样在下次运行时,系统可以根据这个状态决定执行哪些迁移。 四、实际应用 1. 开发流程:在开发阶段,开发者可以频繁地创建和执行迁移...

    django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决

    主要给大家介绍了关于执行python manage.py migrate时报错:django.db.utils.ProgrammingError: (1146, "Table 'test.model_student' doesn't exist" )问题的解决方法,文中将解决的方法介绍的非常详细,需要的朋友...

    数据迁移:迁移和更新数据库结构中的数据

    数据迁移 将数据迁移与模式迁移一起运行。 数据迁移存储在db/data 。 它们的行为类似于架构迁移,只是它们应保留用于数据... 当然,您要测试迁移,因此可以选择db:migrate:with_data或data:migrate来捕获数据更改。

Global site tag (gtag.js) - Google Analytics