2016-04-11 8 views
2

Ich würde Sie fragen, was ist Best Practices (oder wenn es überhaupt möglich ist), Datenbank zwischen zwei Computern zu synchronisieren. Ich habe einen Computer bei der Arbeit und einen zu Hause. Ich habe zwei identische virtuelle Umgebungen, und ich möchte, wenn ich meine Arbeit an einem Computer mit dem anderen fortsetze. Für den App-Code verwende ich git zum Teilen und es ist perfekt, aber ich finde keine befriedigende Lösung für die Datenbank. Ich habe google und lese viel darüber und vielleicht ist es ein falscher Weg. Ich habe Remote-Datenbank verwendet, aber es gibt Geschwindigkeitsbegrenzung und Internet-Verbindung brauchen. Vielen Dank für Ihre Meinung.Wie kann ich Datenbanken zwischen zwei lokalen virtuellen Entwicklungsumgebungen synchronisieren

+1

Dies ist eine gute Frage, aber eine Sache, die Sie klären sollten - möchten Sie eine Synchronisierung beider Richtungen? Das bedeutet, dass beide DB gleichzeitig ausgeführt werden müssen. Welche Größe der DB möchten Sie synchronisieren? stoppt die Datenbank und das Hochladen der DB-Dateien auf Git ist nicht machbar? Ich denke, Replikation ist ein Overkill für App-Entwicklungsumgebung. – evenro

+0

Und eine andere Frage - ist die DB global für die App (alle App-Benutzer verwenden die gleiche DB) oder ist es lokal für jede Instanz/Benutzer der App? – evenro

+0

Nein, ich brauche die Synchronisierung beider Richtungen nicht. Nur ein Computer ist in einem Moment eingeschaltet. Die Größe ist klein, z. ~ 50 MB. Meinst du Put Dump unter Git Versionskontrolle? Ja die DB ist global, aber es gibt nur einen Benutzer, mich :-) Es ist Entwicklungs-DB. – Michal

Antwort

0

Sie können eine statementbasierte MySQL-Replikation einrichten. Du kannst nichts falsch machen. - Stellen Sie sicher, dass Sie ein Skript haben, das Ihre Serververbindungen überprüft - Stellen Sie sicher, dass Sie ein Skript haben, das die Verzögerung misst (nur wenn der Thread in einem Verarbeitungs-Binlog hängen bleibt) überprüft Ihren Slave-I/O und SQL-Thread.

0

Normalerweise synchronisieren Sie die Datenbank nicht zwischen Entwicklungsumgebung, Sie haben entweder ein Migrations-System und ein Faker-System, um die Datenbank zu füllen.

Beispiel eines Migrationssystem:

https://laravel.com/docs/5.1/migrations

/** 
    * Run the migrations. 
    * 
    * @return void 
    */ 
    public function up() 
    { 
     Schema::create('flights', function (Blueprint $table) { 
      $table->increments('id'); 
      $table->string('name'); 
      $table->string('airline'); 
      $table->timestamps(); 
     }); 
    } 

Populate Datenbank; https://laravel.com/docs/5.1/seeding