db = Mysql::with($mysql); } protected Mysql $db; function db(): Mysql { return $this->db; } const PRIMARY_KEY_DEFINITION = [ "id_" => "integer primary key auto_increment", ]; protected function tableExists(string $tableName): bool { $db = $this->db; $found = $db->get([ "select table_name from information_schema.tables", "where" => [ "table_schema" => $db->getDbname(), "table_name" => $tableName, ], ]); return $found !== null; } const METADATA_COLS = [ "name" => "varchar(64) not null primary key", "value" => "varchar(255)", ]; function _getMigration(CapacitorChannel $channel): _mysqlMigration { $migrations = cl::merge([ "0init" => [$this->_createSql($channel)], ], $channel->getMigration()); return new _mysqlMigration($migrations, $channel->getName()); } const CHANNELS_COLS = [ "name" => "varchar(255) not null primary key", "table_name" => "varchar(64)", "class_name" => "varchar(255)", ]; protected function _addToChannelsSql(CapacitorChannel $channel): array { return cl::merge(parent::_addToChannelsSql($channel), [ "suffix" => "on duplicate key update name = name", ]); } function close(): void { $this->db->close(); } }