Upgrade mit MSSQL

Hallo,

ich habe in MSSQL einen Dump der Datenbank für die Version 5 gemacht und eine frische DB für Version 6 angelegt und die Daten dort eingespielt. In der mAirList-Config möchte ich jetzt die Datenbank-Struktur aktualisieren. Ich erhalten jedoch die unten angehängte Fehlermeldung. Wir hatten schonmal das Problem beim Upgrade von 4 auf die 5-er Version: mAirList Community Forum - mAirList Community Forum

Fehler beim Upgrade auf Version 24: SQL Error: "[FireDAC][Phys][ODBC][Microsoft][SQL Server Native Client 11.0][SQL Server]Der FK__template___stati__2F10007B-Fremdschlüssel verweist implizit auf das stations-Objekt, für das kein Primärschlüssel definiert ist.". Query: "CREATE TABLE template_assignment ( station INT NOT NULL REFERENCES stations, subplaylist INT NOT NULL DEFAULT 0, condition NVARCHAR(255) NOT NULL DEFAULT 'Default', weekday INT NOT NULL, hour INT NOT NULL, template INT NOT NULL references templates, PRIMARY KEY (station, subplaylist, condition, weekday, hour) )".

Die Spalte “idx” in der Tabelle “stations” muss dort als Primärschlüssel definiert sein. Möglicherweise ist es das bei euch nicht - weil eure Datenbank noch während der “Betaphase” der MSSQL-Anbindung angelegt wurde.

Also zunächst den Primärschlüssel nachrüsten:

https://msdn.microsoft.com/de-de/library/ms189039.aspx

Danke für die schnelle Rückmeldung. Ich habe den Primärschlüssel nachgerüstet, die Fehlermeldung bleibt aber unverändert ???


Bildschirmfoto 2017-03-12 um 17.53.59.png

Okay, es fehle fast überall wieder der Primär-Key. Ich denke ich hab jetzt alle.
Trotzdem kommt weiter eine Fehlermeldung:

Fehler beim Upgrade auf Version 24: SQL Error: "[FireDAC][Phys][ODBC][Microsoft][SQL Server Native Client 11.0][SQL Server]Die INSERT-Anweisung steht in Konflikt mit der FOREIGN KEY-Einschränkung 'FK__musictemp__templ__29221CFB'. Der Konflikt trat in der mairlistv6-Datenbank, Tabelle 'dbo.templates', column 'idx' auf.". Query: "INSERT INTO musictemplate_assignment SELECT * FROM temp".

OK, in diesem Falle ist das wohl tatsächlich ein Bug in den Update-Scripts.

Bitte probiere mal den neuen Build 3515 aus. Ich lade gerade hoch.

Hallo Torben,

das hat schonmal funktioniert. Allerdings geht es jetzt mit dieser Fehlermeldung weiter:

Fehler beim Upgrade auf Version 24: SQL Error: "[FireDAC][Phys][ODBC][Microsoft][SQL Server Native Client 11.0][SQL Server]Spaltennamen müssen in jeder Tabelle eindeutig sein. Der Spaltenname 'starttime' wurde in der playlist-Tabelle mehrmals angegeben.". Query: "ALTER TABLE playlist ADD starttime DATETIME DEFAULT NULL".

Im Anhang die Tabelle, wie sie aktuell aufgebaut ist.


Lösung: Spalte “starttime” manuell löschen; wird dann beim Schema-Upgrade wiederhergestellt.

Habe die Spalte “starttime” gelöscht. Allerdings bleibt die Fehlermeldung die Gleiche ???

Hm. Probieren wir es mal mit Build 3516 :slight_smile:

Hey,
hab ich ausprobiert. Jetzt kommt dieser Fehler :smiley:

Fehler beim Upgrade auf Version 24: SQL Error: "[FireDAC][Phys][ODBC][Microsoft][SQL Server Native Client 11.0][SQL Server]Für Spalten vom timestamp-Datentyp können keine Standardwerte erstellt werden. playlist-Tabelle, stoptime-Spalte.". Query: "ALTER TABLE playlist ADD stoptime TIMESTAMP DEFAULT NULL".

Es ist auch echt zum K*tzen mit eurer Datenbank :stuck_out_tongue:

Build 3517 bitte.

Ach, MSSQL ist doch toll?! :slight_smile:

Jetzt hats funktioniert!

Willst du die Wahrheit wissen? Ich habe noch keine Entscheidung so sehr bereut wie diejenige, MSSQL als zusätzliches Backend anzubieten.

Selbst MySQL (jetzt ab v6 verfügbar) war nur halb so schlimm in der Anpassung mit seinen “Macken”.

Aber bei Microsoft fragt man sich echt manchmal, wofür es einen SQL-Standard gibt, wenn sie sich eh nicht daran halten.