dbup не создает таблицу версий схемы автоматически - PullRequest
2 голосов
/ 02 августа 2020

Я установил последнюю версию DbUp 4.4.0 с nuget и выполнил шаги, описанные в документации

https://dbup.readthedocs.io/en/latest/

Я использую MySQL database и создал новый. NET Core console project.

  • База данных еще не существует. Я удалил его

  • Я установил пакет dbup и dbup- mysql

  • Я скопировал образец кода из документации и изменил его немного

      static void Main(string[] args)
      {
          var connectionString = "Server=localhost;Port=3306;Database=my_database;Uid=root;Pwd=admin;";
    
          EnsureDatabase.For.MySqlDatabase(connectionString);
    
          var upgrader = DeployChanges.To
                  .MySqlDatabase(connectionString)
                  .WithScriptsEmbeddedInAssembly(Assembly.GetExecutingAssembly())
                  .Build();
    
          var result = upgrader.PerformUpgrade();
    
          if (!result.Successful)
          {
              throw result.Error;
          }
      }
    
  • Я создал новый. sql файл в этом проекте и назвал его 1595961596-initial_script. sql и определил его как встроенный ресурс

.

DROP DATABASE IF EXISTS `my_database`;
CREATE DATABASE `my_database`;
  • При запуске проекта result.Successful возвращает false и выдает эту ошибку

Таблица my_database.schemaversions не существует

Я думал, что таблица schemaversions будет автоматически сгенерирована? Кто-нибудь знает как исправить?

Если это поможет: я использую Linux с MariaDb. Я также попытался создать эту таблицу самостоятельно с помощью

https://dbup.readthedocs.io/en/latest/more-info/journaling/

.JournalToSqlTable("my_database", "schemaversions")

, но затем я получил эту ошибку

MySql .Data.MySqlClient.MySqlException: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, чтобы найти правильный синтаксис для использования рядом с '[my_database]. [schemaversions] ([Id] int identity (1,1) not null constraint' в строке 1

1 Ответ

2 голосов
/ 05 августа 2020

Таблица schemaversions была добавлена ​​правильно, но проблема в том, что вы удаляете базу данных в исходном скрипте. DbUp больше не добавляет его.

...