public function up(MetadataInterface $schema) { $create_repositories = new CreateTable('repository'); $create_repositories->addColumn(new Integer('id')); $create_repositories->addConstraint(new PrimaryKey('id')); $create_repositories->addColumn(new Varchar('url', 128)); $this->addSql($create_repositories->getSqlString($this->adapter->getPlatform())); }
/** * @param null|PlatformInterface $platform * @return string */ public function getSqlString(PlatformInterface $platform = null) { // localize variables foreach (get_object_vars($this->createTable) as $name => $value) { $this->{$name} = $value; } return parent::getSqlString($platform); }
public function up(MetadataInterface $schema) { $create_test = new CreateTable('test'); $create_test->addColumn(new Integer('a')); $sql = $create_test->getSqlString($this->adapter->getPlatform()); // attempt to drop a non-existing table on second statement $drop_fake = new DropTable('fake'); $sql .= '; ' . $drop_fake->getSqlString($this->adapter->getPlatform()); // execute multi-statement sql $this->addSql($sql); }
public function up(MetadataInterface $schema) { $create_commit = new CreateTable('commit'); $create_commit->addColumn(new Integer('commit_id')); $create_commit->addConstraint(new PrimaryKey('commit_id')); $create_commit->addColumn(new Integer('repository_id')); $create_commit->addConstraint(new ForeignKey('fk_repository', 'repository_id', 'repository', 'id')); $create_commit->addColumn(new Varchar('commit_hash', 40)); $create_commit->addColumn(new Datetime('commit_date')); $create_commit->addColumn(new Varchar('commit_author', 48, true)); $create_commit->addColumn(new Text('commit_message')); $this->addSql($create_commit->getSqlString($this->adapter->getPlatform())); $create_commit_file_status = new CreateTable('commit_file_status'); $create_commit_file_status->addColumn(new Integer('commit_file_status_id')); $create_commit_file_status->addConstraint(new Primarykey('commit_file_status_id')); $create_commit_file_status->addColumn(new Integer('commit_id')); $create_commit_file_status->addConstraint(new ForeignKey('fk_commit', 'commit_id', 'commit', 'commit_id')); $create_commit_file_status->addColumn(new Char('status', 1)); $create_commit_file_status->addColumn(new Varchar('name', 512)); $this->addSql($create_commit_file_status->getSqlString($this->adapter->getPlatform())); }
/** * @covers Zend\Db\Sql\Ddl\CreateTable::getSqlString */ public function testGetSqlString() { $ct = new CreateTable('foo'); $this->assertEquals("CREATE TABLE \"foo\" (\n)", $ct->getSqlString()); $ct = new CreateTable('foo', true); $this->assertEquals("CREATE TEMPORARY TABLE \"foo\" (\n)", $ct->getSqlString()); $ct = new CreateTable('foo'); $ct->addColumn(new Column('bar')); $this->assertEquals("CREATE TABLE \"foo\" (\n \"bar\" INTEGER NOT NULL\n)", $ct->getSqlString()); $ct = new CreateTable('foo', true); $ct->addColumn(new Column('bar')); $this->assertEquals("CREATE TEMPORARY TABLE \"foo\" (\n \"bar\" INTEGER NOT NULL\n)", $ct->getSqlString()); }
public function up(MetadataInterface $schema) { $create_test = new CreateTable('test'); $create_test->addColumn(new Integer('a')); $this->addSql($create_test->getSqlString($this->adapter->getPlatform())); }
/** * @param StreamName $streamName * @param array $metadata * @param bool $returnSql * @return string|null Whether $returnSql is true or not function will return generated sql or execute it directly */ public function createSchemaFor(StreamName $streamName, array $metadata = array(), $returnSql = false) { $createTable = new CreateTable($this->getTable($streamName)); $createTable->addColumn(new Varchar('event_id', 100))->addColumn(new Integer('version'))->addColumn(new Varchar('event_name', 100))->addColumn(new Varchar('event_class', 100))->addColumn(new Text('payload'))->addColumn(new Varchar('created_at', 50)); foreach ($metadata as $key => $value) { $createTable->addColumn(new Varchar($key, 100)); } $createTable->addConstraint(new PrimaryKey('event_id')); if ($returnSql) { return $createTable->getSqlString($this->dbAdapter->getPlatform()); } $this->dbAdapter->getDriver()->getConnection()->execute($createTable->getSqlString($this->dbAdapter->getPlatform())); }
<?php /** * Created by PhpStorm. * User: Glenn * Date: 2016-04-21 * Time: 1:50 PM */ use Zend\Db\Sql\Ddl\CreateTable; use Zend\Db\Sql\Ddl\Column; use Zend\Db\Sql\Ddl\Constraint; use Zend\Db\Sql\Ddl\DropTable; require "./vendor/autoload.php"; $container = array(); include "./config/db.env.php"; $adapter = new \Zend\Db\Adapter\Adapter($container['settings']['db']); $adapter->query("DROP TABLE IF EXISTS `users`", $adapter::QUERY_MODE_EXECUTE); $table = new CreateTable('users'); $idColumn = new Column\Integer('id', false, NULL, array('autoincrement' => true)); $table->addColumn($idColumn); $table->addColumn(new Column\Varchar('name', 255)); $table->addColumn(new Column\Varchar('username', 255)); $table->addColumn(new Column\Varchar('password', 255)); $table->addColumn(new Column\Varchar('email', 255)); $table->addConstraint(new Constraint\PrimaryKey('id')); $adapter->query($table->getSqlString(new Zend\Db\Adapter\Platform\Mysql()), $adapter::QUERY_MODE_EXECUTE); $adapter->query("ALTER TABLE `users` MODIFY COLUMN id INT auto_increment", $adapter::QUERY_MODE_EXECUTE);