LazyRecord\SqlBuilder\SqlBuilder::create PHP Method

create() public static method

public static create ( BaseDriver $driver, array $options = [] )
$driver SQLBuilder\Driver\BaseDriver
$options array
    public static function create(BaseDriver $driver, array $options = array())
    {
        if ($driver instanceof MySQLDriver) {
            return new MysqlBuilder($driver, $options);
        } elseif ($driver instanceof PgSQLDriver) {
            return new PgsqlBuilder($driver, $options);
        } elseif ($driver instanceof SQLiteDriver) {
            return new SqliteBuilder($driver, $options);
        }
        throw new Exception('Unsupported driver');
    }

Usage Example

Beispiel #1
0
 public function execute()
 {
     $options = $this->options;
     $logger = $this->logger;
     $id = $this->getCurrentDataSourceId();
     $logger->debug("Finding schema classes...");
     $schemas = $this->findSchemasByArguments(func_get_args());
     $logger->debug("Initialize schema builder...");
     $connectionManager = ConnectionManager::getInstance();
     $conn = $connectionManager->getConnection($id);
     $driver = $connectionManager->getQueryDriver($id);
     $sqlBuilder = SqlBuilder::create($driver, array('rebuild' => $options->rebuild, 'clean' => $options->clean));
     $builder = new DatabaseBuilder($conn, $sqlBuilder, $this->logger);
     $sqls = $builder->build($schemas);
     $sqlOutput = join("\n", $sqls);
     if ($file = $this->options->file) {
         $fp = fopen($file, 'w');
         fwrite($fp, $sqlOutput);
         fclose($fp);
     }
     if ($this->options->basedata) {
         $collection = new SchemaCollection($schemas);
         $collection = $collection->evaluate();
         $seedBuilder = new SeedBuilder($this->getConfigLoader(), $this->logger);
         $seedBuilder->build($collection);
     }
     $time = time();
     $logger->info("Setting migration timestamp to {$time}");
     $metadata = new Metadata($driver, $conn);
     // update migration timestamp
     $metadata['migration'] = $time;
     $logger->info($logger->formatter->format('Done. ' . count($schemas) . " schema tables were generated into data source '{$id}'.", 'green'));
 }
All Usage Examples Of LazyRecord\SqlBuilder\SqlBuilder::create
SqlBuilder