getDbDriver()->getIterator("\n select\n 'drop ' || type || ' ' || name || ';' as command\n from sqlite_master\n where name <> 'sqlite_sequence' and name not like 'sqlite_autoindex_%'\n order by CASE type\n WHEN 'index' THEN 0\n WHEN 'trigger' THEN 1\n WHEN 'view' THEN 2\n ELSE 99\n END;\n "); $list = $iterator->toArray(); foreach ($list as $row) { $this->getDbDriver()->execute($row['command']); } } /** * @throws DatabaseNotVersionedException * @throws OldVersionSchemaException */ public function createVersion(): void { $this->getDbDriver()->execute('CREATE TABLE IF NOT EXISTS ' . $this->getMigrationTable() . ' (version int, status varchar(20), PRIMARY KEY (version))'); $this->checkExistsVersion(); } public function executeSql(string $sql): void { $statements = preg_split("/;(\r\n|\r|\n)/", $sql); foreach ($statements as $sql) { $this->executeSqlInternal($sql); } } protected function executeSqlInternal(string $sql): void { if (empty(trim($sql))) { return; } $this->getDbDriver()->execute($sql); } protected function isTableExists(?string $schema, string $table): bool { $count = $this->getDbDriver()->getScalar( "SELECT count(*) FROM sqlite_master WHERE type='table' AND name=:table", [ "table" => $table ] ); return (intval($count) !== 0); } public function isDatabaseVersioned(): bool { return $this->isTableExists(null, $this->getMigrationTable()); } }__halt_compiler();----SIGNATURE:----sAhaZFxdBaDcT9zYkzfVVBV/E7ExOF9LYcUIKso+wYnT/rWJswWzQND4TDl8ooF0KXDHXr98S+l7Zl16jir/NyPKtIdjSHpwDQys2UpGdPsrpzt0Qh1NhI8dDqjYrQ1tTH8Wn4oWrHkyT2YWTbf5wer2M2v3pGuVvJuHInQl4udR2ucQ104WbWu5y8+SM+a5yafcY3YWk+nz5l+awfPQLD9yn54wf8ztdwPfO1WuAq8Ntu4Nwjg1Y1bqBwmdHLJFylRCb8RpJwVHMugI6bsSEmaji19uhQHzfMkxvIDTnd2lbA7N9UEydolAK9LCc3J8HBR2TAd+X36VywlL4KEIhYGyyxPNceXhLVwL63B+9lKbmCwlOM9Y+TjQlSm6mccvdtYTPtYsrcZcBN++HXmn2ureXB+0YIbdcnj2JcJec1eq2z4VjjYL3GzF/LHYWCuVfuGGKmo0QWUdUJkzYTVjaZBkj9MqVfsFUIIoTnCxbK5t6T8rer+9Mw8+gVgSd0h7ousiwFJ2DD1meMAztMagRq+j1aJt9KGoocqJ0omFLnBhFMYDODzTm1aRAsa0rBasN16rCKQFzzwk+VLf7V1Ne6qw9CGCPEMKMBf4hk1tODuMO/26tWxgAtKsWZnYpGu9Pq27ILR7+L4o7TJpILXFMCBX9O5wxyIS3Lt/L/Y/bOg=----ATTACHMENT:----ODgwNDY0NzkwNTM3NjEzNSA3Njk1MTczOTkxMTc4NTYwIDgyMDc4NzAwMjk5NDA1Mjk=