Frage

Ich bin nicht sehr vertraut mit Kuchen .. Also hier meine Fragen .. wir eine App auf mysql sind die Entwicklung, aber es muß irgendwann zu MSSQL oder Oracle einsetzen. Wie stellen wir sicher, dass wir seltsame Probleme nicht mit unseren Primärschlüssel haben? In mysql sind sie Spalten AUTOINkREMENT aber IIRC in Oracle Sie müssen Sequenzen verwenden ... Gibt es eine Möglichkeit, dies eine transparente Veränderung zu machen? Bin ich es über das Denken?

Hat jemand Erfahrung mit Datenbank-Anbietern auf einem CakePHP App zu wechseln? alle Hinweise oder Dinge im Auge zu halten für?

War es hilfreich?

Lösung

In der Kuchen Datenbank-Konfigurationsdatei Sie Ihre Treiber selbst wählen (siehe http: // Buch .cakephp.org / view / 40 / Datenbank-Konfiguration ). Dann, wenn Sie Ihre PK gesetzt (die auch Ihre A_I Spalte sein werden, wenn die Verwendung von MySQL) mit dem Feldnamen id, Kuchen wird automatisch die auto_increment Einsetzgriff. Ich würde vermuten. (NB: nicht versucht haben Kuchen w / etwas anderes), dass Kuchen kümmern wird von A_I Spalten in so etwas wie Oracle

Cake verwendet seine eigene Abstraktionsschicht DB - aber die darin enthaltenen Abstraktionen decken ziemlich viel, und es wird wie angegeben durchführt (das heißt es Ihre Autoinkrement Sachen für Sie behandeln wird)

.

Kurz gesagt, sind Sie wahrscheinlich Grübeln. Das heißt, würde ich einen kleinen Kuchen app Mock-up, dann versuchen Schalt Datenbanken dahinter (Ihre db Config ändern und Ihre App sollte automatisch umschalten).

HTH, Travis

Andere Tipps

Die folgenden Praktiken für mich große Arbeit

verwende ich Kuchen-Schemata (I sind in der Regel 1 Schemadatei von Modellen für jede Gruppe einzurichten. I.E. Benutzer, Rolle, Profil alle in einer UsersSchema Datei sein könnte)

Sie auch einen Blick nehmen Sie die debuggable.com FixturesShell bei Verwendung - ermöglicht es Ihnen, Testfall Leuchten in die Live-Datenbank zu importieren. Große für die Einstellung, dass die erste Gruppe von Benutzern und Rollen aus der Schemadatei auf.

Auch wenn Sie setzen Ihre ‚id‘ Feld VARCHAR (36) anstelle von INT (#) Kuchen wird automatisch UUID Stil ids verwenden. Das heißt, Sie haben eine FAR FAR geringere Chance Ihrer Daten ID-Wert Kollisionen mit, wenn Sie die Daten in einer anderen Anwendung oder Server verschieben müssen.

Die Leuchten Shell hat auch ein Kommandozeilen-Tool für UUID zu erzeugen (so können Sie diese in Ihren $ Aufzeichnungen Variable in der Halterung hinzufügen zum Einsetzen etc.)

Zusammengefasst - Verwenden Sie die CakeSchema Schemata Shell, Shell die Befestigungen von debuggable.com und UUID-Werte für Ihre IDs und es sollten Sie eine tragbare Struktur Tool zur Erstellung geben, ein tragbares Daten Einsetzwerkzeug und ein tragbares ID-Feld Format <. / p>

http://github.com/felixge/debuggable -scraps / Baum / fd0e5ad625cb21f5ba16e6b186821a5774089ac7 / cakephp / shells / Einrichtung

http://api.cakephp.org/class/schema-shell

Sie müssen „Kuchen-Schema“ zu verwenden, um Ihre DB zu verwalten .. Dies wird alle DB spezielle Sachen zu behandeln, wenn Sie Ihre Datenbank erstellen.

http://book.cakephp.org/view / 735 / Generating-und-mit-Schema-Dateien

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top