Rails: Как установить Schema.define (версия: xxxxxx) внутри миграций? - PullRequest
0 голосов
/ 18 октября 2018

В настоящее время у меня есть файл миграции с именем 20180610150713_create_database_structure.rb. Внутри него я создаю базу данных со следующей структурой

class CreateDatabaseStructure < ActiveRecord::Migration[5.1]
  def change
    ActiveRecord::Schema.define(version: 20180610150713) do 
      create_table :products do |t|
      t.string :name
      t.text :description

      t.timestamps
      end
      # create everything
    end
  end
end

Однако, когда я запускаю команду rails db:drop db:create db:migrate, я получаю следующую ошибку:

rails aborted!
StandardError: An error has occurred, all later migrations canceled:

Mysql2::Error: Duplicate entry '20180610150713' for key 'PRIMARY': INSERT INTO `schema_migrations` (`version`) VALUES ('20180613180630')

Хотя он и делает то, что должен корректно, последующие миграции останавливаются.Раньше это работало очень хорошо, когда я начинал работать над этим проектом, и внезапно остановился совсем недавно.

Изменение временной метки миграции внутри приложения «исправляет это», но, так как это идет в производство, я не хочу этогоиспортить что-то еще в производственной базе данных.

PS Этот файл миграции уже находится в производстве.

...