Doctrine ORM: Alle Tabellen löschen, ohne die Datenbank zu löschen

8

Ich muss mit einer vorhandenen Datenbank arbeiten (nicht mit Doctrine verwaltet) und ich möchte nur Doktrinen für neue Tabellen in dieser Datenbank verwenden.

Gibt es eine Möglichkeit, Doctrine anzuweisen, beim Nachladen nicht die gesamte Datenbank zu löschen, sondern nur die in der yaml -Datei definierten Modelle?

    
gpilotino 10.09.2009, 13:41
quelle

6 Antworten

12

Ich kenne das eine sehr alte Frage, und es scheint, dass Sie symfony verwenden.

Versuchen:

%Vor%

Dadurch werden alle Tabellen in der Datenbank gelöscht.

    
Meezaan-ud-Din 19.08.2016 14:16
quelle
3

Für Symfony 3:

%Vor%     
Gebus 20.09.2017 14:41
quelle
2

Meine 2 Cent, wenn du das über PHP machen willst:

%Vor%

Dies ist ein wenig langsam, Sie können auch alle Daten aus allen Tabellen löschen:

%Vor%     
Thomas Decaux 24.04.2017 18:54
quelle
1

Sie können eine Aufgabe finden, die ich verwende, um alle Tabellen aus einer Datenbank in diesem Geiste abzuschneiden: Ссылка

Der Kerncode ist:

%Vor%     
Flevour 19.08.2011 09:54
quelle
0

Ja, Sie können die Doktrin nur für einige Tabellen verwenden (nicht für alle). Und es wird nicht alle anderen Tabellen fallen lassen, es sei denn, Sie führen

manuell aus %Vor%

So können Sie Doctine für Ihre neuen Tabellen verwenden:

  1. DB-Verbindung einrichten

  2. Doctrine-Dateien / Verzeichnisstruktur einrichten

  3. Verwenden der Befehlszeilenschnittstelle , um automatisch alle Doctrine-Modelle (und Schemata) basierend auf DB-Tabellen zu generieren (Sie können nicht benötigte Modelle manuell löschen).

ep3static 18.10.2009 19:06
quelle
0

@ gpilotino Ja, ich habe ein ähnliches Problem. Es scheint KEINEN Weg zu geben, die Datenbank innerhalb von PHPUnit (Die Zukunft der Symfony-Tests) zu löschen und neu aufzubauen.

Vielleicht ist es in 'Limone' möglich, ich weiß es nicht.

Also muss ich eine umgekehrte - & gt; save () -Funktion schreiben, die alle Daten aus der Datenbank sichert und dann alle Sequenzen zurücksetzt, damit ich automatisierte Tests durchführen kann.

Für diejenigen, die meiner Frustration nicht folgen wollen, habe ich beides versucht:

1) Verwenden einer Aufgabe von innerhalb von Symfony:

%Vor%

2) Ausführen von außerhalb von Symfony innerhalb von PHP:

%Vor%

Der Grund, dass ich die Verbindung geschlossen habe, ist, dass Postgres, MDBOC (meine bevorzugte Datenbank) keine Datenbank mit einer Verbindung löscht. Wahrscheinlich ist NOCH ein Problem. Ich sage dir, es ist NIE so einfach wie die einfachen Tutorials. Und es ist sogar schlimmer mit Microslop-Produkten.

    
user327312 15.07.2010 22:26
quelle

Tags und Links