Nextras\Migrations ked pouzijem orm:schema-tool:update z aplikacie, chce dropnut table migrations

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
duskohu
Člen | 778
+
0
-

Caute, pouzivam Nextras\Migrations a pokusam sa vygenerovat zke mam zmeny v entitach, ale nevolam to cez konzolu, ale cez aplikaciu. Chcel by som si tieto zmeny ukladat do migrations. problem je v tom ze mi to ponuka drop tabulky migrations, pokial to volam cez konzolu je to ok. Neviete mi poradit preco sa to takto sprava?

$metadatas = $this->em->getMetadataFactory()->getAllMetadata();
if (!empty($metadatas)) {
	$schemaTool = new \Doctrine\ORM\Tools\SchemaTool($this->em);
	$sqls = $schemaTool->getUpdateSchemaSql($metadatas, FALSE);
	bdump($sqls); //DROP TABLE migrations
}
Martk
Člen | 661
+
0
-

Zkoušel jsi dát místo FALSE TRUE?

duskohu
Člen | 778
+
0
-

Martk napsal(a):

Zkoušel jsi dát místo FALSE TRUE?

 * @param array   $classes  The classes to consider.
 * @param boolean $saveMode True for writing to DB, false for SQL string.
 *
 * @return array The sequence of SQL statements.
 */
public function getUpdateSchemaSql(array $classes, $saveMode = false)
Martk
Člen | 661
+
0
-

Komentáře jsem nečetl, ale když jsem tam dal TRUE, tak mi to vyhodilo sql kód bez dropu ve stringu (žádný update). K přímé aktualizaci db slouží metoda updateSchema.

Mimochodem, když se podívám co dělá proměnná $saveMode, tak tohle:

if ($saveMode) {
	return $schemaDiff->toSaveSql($this->platform);
}

// a komentar metody toSaveSql
/**
     * The to save sql mode ensures that the following things don't happen:
     *
     * 1. Tables are deleted
     * 2. Sequences are deleted
     * 3. Foreign Keys which reference tables that would otherwise be deleted.
duskohu
Člen | 778
+
0
-

@Martk Dik, pomohlo, to by ma ani nenapadlo :-)