/workspaces/MyVendor.Ticket$ composer setup
> php bin/setup.php
Phinx by CakePHP - https://phinx.org.
using config file var/phinx/phinx.php
using config parser php
using migration paths
- /workspaces/MyVendor.Ticket/var/phinx/migrations
using environment development
using database ticket
ordering by creation time
== 20221017052941 Ticket: migrating
PDOException: SQLSTATE[42000]: Syntax error or access violation: 1171 All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead in /workspaces/MyVendor.Ticket/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/PdoAdapter.php:192
Stack trace:
#0 /workspaces/MyVendor.Ticket/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/PdoAdapter.php(192): PDO->exec('CREATE TABLE `t...')
#1 /workspaces/MyVendor.Ticket/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/MysqlAdapter.php(357): Phinx\Db\Adapter\PdoAdapter->execute('CREATE TABLE `t...')
#2 /workspaces/MyVendor.Ticket/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/AdapterWrapper.php(349): Phinx\Db\Adapter\MysqlAdapter->createTable(Object(Phinx\Db\Table\Table), Array, Array)
#3 /workspaces/MyVendor.Ticket/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/TimedOutputAdapter.php(113): Phinx\Db\Adapter\AdapterWrapper->createTable(Object(Phinx\Db\Table\Table), Array, Array)
#4 /workspaces/MyVendor.Ticket/vendor/robmorgan/phinx/src/Phinx/Db/Plan/Plan.php(146): Phinx\Db\Adapter\TimedOutputAdapter->createTable(Object(Phinx\Db\Table\Table), Array, Array)
#5 /workspaces/MyVendor.Ticket/vendor/robmorgan/phinx/src/Phinx/Db/Table.php(716): Phinx\Db\Plan\Plan->execute(Object(Phinx\Db\Adapter\TimedOutputAdapter))
#6 /workspaces/MyVendor.Ticket/vendor/robmorgan/phinx/src/Phinx/Db/Table.php(612): Phinx\Db\Table->executeActions(false)
#7 /workspaces/MyVendor.Ticket/var/phinx/migrations/20221017052941_ticket.php(25): Phinx\Db\Table->create()
#8 /workspaces/MyVendor.Ticket/vendor/robmorgan/phinx/src/Phinx/Migration/Manager/Environment.php(108): Ticket->change()
#9 /workspaces/MyVendor.Ticket/vendor/robmorgan/phinx/src/Phinx/Migration/Manager.php(388): Phinx\Migration\Manager\Environment->executeMigration(Object(Ticket), 'up', false)
#10 /workspaces/MyVendor.Ticket/vendor/robmorgan/phinx/src/Phinx/Migration/Manager.php(359): Phinx\Migration\Manager->executeMigration('development', Object(Ticket), 'up', false)
#11 /workspaces/MyVendor.Ticket/vendor/robmorgan/phinx/src/Phinx/Console/Command/Migrate.php(122): Phinx\Migration\Manager->migrate('development', 20221017052941, false)
#12 /workspaces/MyVendor.Ticket/vendor/symfony/console/Command/Command.php(291): Phinx\Console\Command\Migrate->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#13 /workspaces/MyVendor.Ticket/vendor/symfony/console/Application.php(1002): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#14 /workspaces/MyVendor.Ticket/vendor/symfony/console/Application.php(299): Symfony\Component\Console\Application->doRunCommand(Object(Phinx\Console\Command\Migrate), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#15 /workspaces/MyVendor.Ticket/vendor/robmorgan/phinx/src/Phinx/Console/PhinxApplication.php(70): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#16 /workspaces/MyVendor.Ticket/vendor/symfony/console/Application.php(171): Phinx\Console\PhinxApplication->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#17 /workspaces/MyVendor.Ticket/vendor/robmorgan/phinx/bin/phinx(28): Symfony\Component\Console\Application->run()
#18 /workspaces/MyVendor.Ticket/vendor/bin/phinx(120): include('/workspaces/MyV...')
#19 {main}
Phinx by CakePHP - https://phinx.org.
public function execute(string $sql, array $params = []): int
{
$sql = rtrim($sql, "; \t\n\r\0\x0B") . ';';
$this->verboseLog($sql);
if ($this->isDryRunEnabled()) {
return 0;
}
if (empty($params)) {
+ echo PHP_EOL . 'SQL => ' . $sql . PHP_EOL;
return $this->getConnection()->exec($sql);
}
$stmt = $this->getConnection()->prepare($sql);
$result = $stmt->execute($params);
return $result ? $stmt->rowCount() : $result;
}
SQL => CREATE TABLE `ticket` (`id` CHAR(36) NULL, `title` VARCHAR(255) NULL, `date_created` DATETIME NULL, PRIMARY KEY (`id`)) ENGINE = InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
public function change()
{
$table = $this->table('ticket', ['id' => false, 'primary_key' => ['id']]);
- $table->addColumn('id', 'uuid')
+ $table->addColumn('id', 'uuid', ['null' => false])
->addColumn('title', 'string')
->addColumn('date_created', 'datetime')
->create();
}