Ruby on rails Rails需要在每次重新启动服务器时进行迁移

Ruby on rails Rails需要在每次重新启动服务器时进行迁移,ruby-on-rails,ruby-on-rails-5,Ruby On Rails,Ruby On Rails 5,将我的应用程序部署到heroku时,我遇到了一些迁移错误 所以我结合了所有的迁移,只需按住创建表文件包含所有最终属性,删除编辑表 现在,每次重新启动服务器(localhost),我都必须再次db:migrate,以确保一切正常 当我只使用db:migrate时,错误显示:表“产品”已经存在 因此,我必须先db:drop,然后db:migrate才能让我的应用程序正常工作 这花了我很多时间。 我如何解决这个问题? 以下是我的迁移状态: 截至20190306060445**********无文件

将我的应用程序部署到heroku时,我遇到了一些迁移错误

所以我结合了所有的迁移,只需按住创建表文件包含所有最终属性,删除编辑表

现在,每次重新启动服务器(localhost),我都必须再次
db:migrate
,以确保一切正常

当我只使用
db:migrate
时,错误显示:
表“产品”已经存在
因此,我必须先
db:drop
,然后
db:migrate
才能让我的应用程序正常工作 这花了我很多时间。 我如何解决这个问题? 以下是我的迁移状态:


截至20190306060445**********无文件**********
向下20190306060545创建产品
截至20190307035103创建活动存储表活动存储
截至20190308045037**********无文件**********
截至20190308071304**********无文件**********
down 20190308072304设计创造用户
截至20190308074025设计创建管理员
向下20190308082018创建类别
截至20190308083018**********无文件**********
截至20190311041416**********无文件**********
截至20190313084429创建付款
最多20190314024236创建购物车
截至20190314024911创建购物车产品
最多20190314035334创建消息
截至20190314145333创建付款项目
截至20190314151340*********无文件**********
截至20190315020606*********无文件**********
截至20190318073652创建凭证
截至20190319035819*********无文件**********
最多20190319134032个联系人
截至20190320034249*********无文件**********
截至2019032006223*********无文件**********
截至20190325132236*********无文件**********
截至20190325155829**********无文件**********
截至20190329095529*********无文件**********
截至20190329110656**********无文件**********
截至20190330145000*********无文件**********
截至20190331162926*********无文件**********
截至20190408155326**********无文件**********
截至20190419055934**********无文件**********
截至20190419060341**********无文件**********
截至20190502105847*********无文件**********
增加20190502110019增加库存
截至20190506114910*********无文件**********
截至2019050615146**********无文件**********
截至20190506115302*********无文件**********
截至20190513042021*********无文件**********
截至20190513050115*********无文件**********
截至20190514025220*********无文件**********
截至20190514031046*********无文件**********
截至20190516010239创建注释
截至20190516020021**********无文件**********
截至20190517132706创建通知
截至20190524152143创建品牌
截至20190527040142**********无文件**********
截至20190528113143添加列设计
截至20190528113658添加列设计1
截至20190531125307创建新闻
截至20190531144908创建ckeditor资产
截至20190601100118创建新闻产品
截至20190602144319创建新闻类型
截至20190602155208**********无文件**********
截至20190603062824*********无文件**********
截至20190606172629**********无文件**********
截至20190607074100*********无文件**********
截至20190607122350*********无文件**********
截至20190607140214**********无文件**********
截至20190608082804**********无文件**********
最多20190609051100向用户添加omniauth
截至2019061115405*********无文件**********
截至20190612071933创建表格转盘
截至20190612100433*********无文件**********
截至20190613082404**********无文件**********
截至20190614131413*********无文件**********
截至20190615161828**********无文件**********
截至20190617154212创建地区
截至20190617154602创建省
截至20190619140034创建病房
截至20190620134528*********无文件**********
down 20190620140214将表格转换为utf8 v1
截至20190622123753*********无文件**********

在更改所有迁移时,您创建了“新”迁移
rails db:migrate
正在尝试将这些“新”迁移应用于已存在的数据库。(应用的迁移列表保存在
schema_migrations
表中)。我们可以看到所有向下的
迁移都是尚未应用的迁移。包括
向下20190306060545创建产品

由于这是一个正在运行的生产数据库,
product
表可能已经存在。当Rails运行migration
20190306060545 Create product
时,它可能试图
Create\u table:product
它将失败,因为
product
已经存在

避免这种情况的一种方法是首先检查“创建表”迁移中是否存在该表。如果有,什么也不做

if table_exists?(:product)
  return
end
为了在开发中重现这一点

  • 查看原始迁移
  • 从以下内容创建一个新架构:
    railsdb:migrate:reset
  • 查看您的新组合迁移
  • 尝试迁移:
    rails-db:migrate

我是RoR新手。正如我所知,rails在更改迁移时需要运行
rails db:migrate
。但是我什么也不做,为什么每次重启服务器时,它都会要求我一次又一次地迁移db:migrate。为什么不仅仅是产品,我还组合了另一个表(凭单、付款、购物车等等),而且只有产品显示
向下
我刚刚意识到,当运行
rails db:migrate:reset
schema_migration
时,
表只显示
向上
迁移
都存在于
db/migrate
中。仅当我将转储数据库文件导入dat时