Zainstalowałem najnowszą wersję DBUP w wersji 4.4.0 z Nuget i podążałem za krokami opisanymi w Dokumentach

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

Używam bazy danych MySQL i stworzyłem nowy projekt konsoli rdzeniowej .NET.

  • Nie ma jeszcze obecnej bazy danych. Usunąłem to

  • Zainstalowałem pakiet DBUP i DBUP-MySQL

  • Skopiowałem przykładowy kod z dokumentów i trochę go zmodyfikował

      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;
          }
      }
    
  • Stworzyłem nowy plik .SQL w tym projekcie i nazywa go 1595961596-ITION_Script.sql i zdefiniowałem go jako wbudowany zasób

.

DROP DATABASE IF EXISTS `my_database`;
CREATE DATABASE `my_database`;
  • Podczas uruchamiania projektu {X0}} zwraca fałszywe i rzuca ten błąd

Tabela "My_DataBase.schawersions" nie istnieje

Myślałem, że automatycznie generuje schemaversions? Czy ktoś wie, jak to naprawić?


Jeśli to pomoże: używam Linuksa z MariaDb. Próbowałem też stworzyć ten stół na własną rękę

https://dbup.readthedocs.io/pl/latest/more-info/journing/

.JournalToSqlTable("my_database", "schemaversions")

Ale potem dostaję ten błąd

Mysql.data.mysqlClient.mysqlexception: Masz błąd w składni SQL; Zaznacz instrukcję, która odpowiada wersji serwera MariaDB dla właściwej składni do użycia w pobliżu "[My_DataBase]. [Schemaversions] ([ID] Int tożsamość (1,1) Nie ma ograniczenia NULL" w linii 1

2
Question3r 2 sierpień 2020, 23:52

2 odpowiedzi

Najlepsza odpowiedź

Schemery stołowe zostały dodane prawidłowo, ale problem polega na tym, że upuściłeś bazę danych w początkowym skrypcie. DBUP nie dodaje go ponownie.

2
Dharman 5 sierpień 2020, 11:33

Fwiw, przyjechałem tutaj, ponieważ widziałem ten błąd ... z wyjątkiem mojego przypadku, wydaje się być związane z tym starego błędu jakoś: https://github.com/dbup/dbup/issues/188. Inny schemat miał już tabelę schemaversions.

0
Mauricio Morales 11 marzec 2021, 16:41