Migraciones

This commit is contained in:
2021-03-16 00:43:14 -03:00
parent bfaf2b354e
commit cd6a949e23
7 changed files with 682 additions and 2 deletions

View File

@ -0,0 +1,12 @@
<?php
use Phinx\Db\Adapter\MysqlAdapter;
class InicialLoad extends Phinx\Migration\AbstractMigration
{
public function change()
{
$this->execute("ALTER DATABASE CHARACTER SET 'utf8mb4';");
$this->execute("ALTER DATABASE COLLATE='utf8mb4_general_ci';");
}
}

View File

@ -0,0 +1,40 @@
<?php
use Phinx\Db\Adapter\MysqlAdapter;
class CreateCurrencies extends Phinx\Migration\AbstractMigration
{
public function change()
{
$this->table('currencies', [
'id' => false,
'primary_key' => ['id'],
'engine' => 'InnoDB',
'encoding' => 'utf8mb4',
'collation' => 'utf8mb4_general_ci',
'comment' => '',
'row_format' => 'DYNAMIC',
])
->addColumn('id', 'integer', [
'null' => false,
'limit' => '10',
'signed' => false,
'identity' => 'enable',
])
->addColumn('code', 'string', [
'null' => false,
'limit' => 5,
'collation' => 'utf8mb4_general_ci',
'encoding' => 'utf8mb4',
'after' => 'id',
])
->addColumn('name', 'string', [
'null' => false,
'limit' => 100,
'collation' => 'utf8mb4_general_ci',
'encoding' => 'utf8mb4',
'after' => 'code',
])
->create();
}
}

View File

@ -0,0 +1,77 @@
<?php
use Phinx\Db\Adapter\MysqlAdapter;
class CreateValues extends Phinx\Migration\AbstractMigration
{
public function change()
{
$this->table('values', [
'id' => false,
'primary_key' => ['currency_id', 'date_time', 'base_id'],
'engine' => 'InnoDB',
'encoding' => 'utf8mb4',
'collation' => 'utf8mb4_general_ci',
'comment' => '',
'row_format' => 'DYNAMIC',
])
->addColumn('currency_id', 'integer', [
'null' => false,
'limit' => '10',
'signed' => false,
])
->addColumn('date_time', 'datetime', [
'null' => false,
'after' => 'currency_id',
])
->addColumn('value', 'double', [
'null' => false,
'after' => 'date_time',
])
->addColumn('base_id', 'integer', [
'null' => false,
'limit' => '10',
'signed' => false,
'after' => 'value',
])
->addIndex(['currency_id'], [
'name' => 'currency_id',
'unique' => false,
])
->addIndex(['base_id'], [
'name' => 'base_id',
'unique' => false,
])
->create();
$this->table('currencies', [
'id' => false,
'primary_key' => ['id'],
'engine' => 'InnoDB',
'encoding' => 'utf8mb4',
'collation' => 'utf8mb4_general_ci',
'comment' => '',
'row_format' => 'DYNAMIC',
])
->addColumn('id', 'integer', [
'null' => false,
'limit' => '10',
'signed' => false,
'identity' => 'enable',
])
->addColumn('code', 'string', [
'null' => false,
'limit' => 5,
'collation' => 'utf8mb4_general_ci',
'encoding' => 'utf8mb4',
'after' => 'id',
])
->addColumn('name', 'string', [
'null' => false,
'limit' => 100,
'collation' => 'utf8mb4_general_ci',
'encoding' => 'utf8mb4',
'after' => 'code',
])
->create();
}
}

501
db/schema.php Normal file
View File

@ -0,0 +1,501 @@
<?php
return array (
'database' =>
array (
'default_character_set_name' => 'utf8mb4',
0 => 'utf8mb4',
'default_collation_name' => 'utf8mb4_general_ci',
1 => 'utf8mb4_general_ci',
),
'tables' =>
array (
'phinxlog' =>
array (
'table' =>
array (
'table_name' => 'phinxlog',
'engine' => 'InnoDB',
'table_comment' => '',
'table_collation' => 'utf8_general_ci',
'character_set_name' => 'utf8',
'row_format' => 'Dynamic',
),
'columns' =>
array (
'version' =>
array (
'TABLE_CATALOG' => 'def',
'TABLE_NAME' => 'phinxlog',
'COLUMN_NAME' => 'version',
'ORDINAL_POSITION' => '1',
'COLUMN_DEFAULT' => NULL,
'IS_NULLABLE' => 'NO',
'DATA_TYPE' => 'bigint',
'CHARACTER_MAXIMUM_LENGTH' => NULL,
'CHARACTER_OCTET_LENGTH' => NULL,
'NUMERIC_PRECISION' => '19',
'NUMERIC_SCALE' => '0',
'DATETIME_PRECISION' => NULL,
'CHARACTER_SET_NAME' => NULL,
'COLLATION_NAME' => NULL,
'COLUMN_TYPE' => 'bigint(20)',
'COLUMN_KEY' => 'PRI',
'EXTRA' => '',
'PRIVILEGES' => 'select,insert,update,references',
'COLUMN_COMMENT' => '',
'IS_GENERATED' => 'NEVER',
'GENERATION_EXPRESSION' => NULL,
),
'migration_name' =>
array (
'TABLE_CATALOG' => 'def',
'TABLE_NAME' => 'phinxlog',
'COLUMN_NAME' => 'migration_name',
'ORDINAL_POSITION' => '2',
'COLUMN_DEFAULT' => 'NULL',
'IS_NULLABLE' => 'YES',
'DATA_TYPE' => 'varchar',
'CHARACTER_MAXIMUM_LENGTH' => '100',
'CHARACTER_OCTET_LENGTH' => '300',
'NUMERIC_PRECISION' => NULL,
'NUMERIC_SCALE' => NULL,
'DATETIME_PRECISION' => NULL,
'CHARACTER_SET_NAME' => 'utf8',
'COLLATION_NAME' => 'utf8_general_ci',
'COLUMN_TYPE' => 'varchar(100)',
'COLUMN_KEY' => '',
'EXTRA' => '',
'PRIVILEGES' => 'select,insert,update,references',
'COLUMN_COMMENT' => '',
'IS_GENERATED' => 'NEVER',
'GENERATION_EXPRESSION' => NULL,
),
'start_time' =>
array (
'TABLE_CATALOG' => 'def',
'TABLE_NAME' => 'phinxlog',
'COLUMN_NAME' => 'start_time',
'ORDINAL_POSITION' => '3',
'COLUMN_DEFAULT' => 'NULL',
'IS_NULLABLE' => 'YES',
'DATA_TYPE' => 'timestamp',
'CHARACTER_MAXIMUM_LENGTH' => NULL,
'CHARACTER_OCTET_LENGTH' => NULL,
'NUMERIC_PRECISION' => NULL,
'NUMERIC_SCALE' => NULL,
'DATETIME_PRECISION' => '0',
'CHARACTER_SET_NAME' => NULL,
'COLLATION_NAME' => NULL,
'COLUMN_TYPE' => 'timestamp',
'COLUMN_KEY' => '',
'EXTRA' => '',
'PRIVILEGES' => 'select,insert,update,references',
'COLUMN_COMMENT' => '',
'IS_GENERATED' => 'NEVER',
'GENERATION_EXPRESSION' => NULL,
),
'end_time' =>
array (
'TABLE_CATALOG' => 'def',
'TABLE_NAME' => 'phinxlog',
'COLUMN_NAME' => 'end_time',
'ORDINAL_POSITION' => '4',
'COLUMN_DEFAULT' => 'NULL',
'IS_NULLABLE' => 'YES',
'DATA_TYPE' => 'timestamp',
'CHARACTER_MAXIMUM_LENGTH' => NULL,
'CHARACTER_OCTET_LENGTH' => NULL,
'NUMERIC_PRECISION' => NULL,
'NUMERIC_SCALE' => NULL,
'DATETIME_PRECISION' => '0',
'CHARACTER_SET_NAME' => NULL,
'COLLATION_NAME' => NULL,
'COLUMN_TYPE' => 'timestamp',
'COLUMN_KEY' => '',
'EXTRA' => '',
'PRIVILEGES' => 'select,insert,update,references',
'COLUMN_COMMENT' => '',
'IS_GENERATED' => 'NEVER',
'GENERATION_EXPRESSION' => NULL,
),
'breakpoint' =>
array (
'TABLE_CATALOG' => 'def',
'TABLE_NAME' => 'phinxlog',
'COLUMN_NAME' => 'breakpoint',
'ORDINAL_POSITION' => '5',
'COLUMN_DEFAULT' => '0',
'IS_NULLABLE' => 'NO',
'DATA_TYPE' => 'tinyint',
'CHARACTER_MAXIMUM_LENGTH' => NULL,
'CHARACTER_OCTET_LENGTH' => NULL,
'NUMERIC_PRECISION' => '3',
'NUMERIC_SCALE' => '0',
'DATETIME_PRECISION' => NULL,
'CHARACTER_SET_NAME' => NULL,
'COLLATION_NAME' => NULL,
'COLUMN_TYPE' => 'tinyint(1)',
'COLUMN_KEY' => '',
'EXTRA' => '',
'PRIVILEGES' => 'select,insert,update,references',
'COLUMN_COMMENT' => '',
'IS_GENERATED' => 'NEVER',
'GENERATION_EXPRESSION' => NULL,
),
),
'indexes' =>
array (
'PRIMARY' =>
array (
1 =>
array (
'Table' => 'phinxlog',
'Non_unique' => '0',
'Key_name' => 'PRIMARY',
'Seq_in_index' => '1',
'Column_name' => 'version',
'Collation' => 'A',
'Sub_part' => NULL,
'Packed' => NULL,
'Null' => '',
'Index_type' => 'BTREE',
'Comment' => '',
'Index_comment' => '',
),
),
),
'foreign_keys' => NULL,
),
'currencies' =>
array (
'table' =>
array (
'table_name' => 'currencies',
'engine' => 'InnoDB',
'table_comment' => '',
'table_collation' => 'utf8mb4_general_ci',
'character_set_name' => 'utf8mb4',
'row_format' => 'Dynamic',
),
'columns' =>
array (
'id' =>
array (
'TABLE_CATALOG' => 'def',
'TABLE_NAME' => 'currencies',
'COLUMN_NAME' => 'id',
'ORDINAL_POSITION' => '1',
'COLUMN_DEFAULT' => NULL,
'IS_NULLABLE' => 'NO',
'DATA_TYPE' => 'int',
'CHARACTER_MAXIMUM_LENGTH' => NULL,
'CHARACTER_OCTET_LENGTH' => NULL,
'NUMERIC_PRECISION' => '10',
'NUMERIC_SCALE' => '0',
'DATETIME_PRECISION' => NULL,
'CHARACTER_SET_NAME' => NULL,
'COLLATION_NAME' => NULL,
'COLUMN_TYPE' => 'int(10) unsigned',
'COLUMN_KEY' => 'PRI',
'EXTRA' => 'auto_increment',
'PRIVILEGES' => 'select,insert,update,references',
'COLUMN_COMMENT' => '',
'IS_GENERATED' => 'NEVER',
'GENERATION_EXPRESSION' => NULL,
),
'code' =>
array (
'TABLE_CATALOG' => 'def',
'TABLE_NAME' => 'currencies',
'COLUMN_NAME' => 'code',
'ORDINAL_POSITION' => '2',
'COLUMN_DEFAULT' => NULL,
'IS_NULLABLE' => 'NO',
'DATA_TYPE' => 'varchar',
'CHARACTER_MAXIMUM_LENGTH' => '5',
'CHARACTER_OCTET_LENGTH' => '20',
'NUMERIC_PRECISION' => NULL,
'NUMERIC_SCALE' => NULL,
'DATETIME_PRECISION' => NULL,
'CHARACTER_SET_NAME' => 'utf8mb4',
'COLLATION_NAME' => 'utf8mb4_general_ci',
'COLUMN_TYPE' => 'varchar(5)',
'COLUMN_KEY' => '',
'EXTRA' => '',
'PRIVILEGES' => 'select,insert,update,references',
'COLUMN_COMMENT' => '',
'IS_GENERATED' => 'NEVER',
'GENERATION_EXPRESSION' => NULL,
),
'name' =>
array (
'TABLE_CATALOG' => 'def',
'TABLE_NAME' => 'currencies',
'COLUMN_NAME' => 'name',
'ORDINAL_POSITION' => '3',
'COLUMN_DEFAULT' => NULL,
'IS_NULLABLE' => 'NO',
'DATA_TYPE' => 'varchar',
'CHARACTER_MAXIMUM_LENGTH' => '100',
'CHARACTER_OCTET_LENGTH' => '400',
'NUMERIC_PRECISION' => NULL,
'NUMERIC_SCALE' => NULL,
'DATETIME_PRECISION' => NULL,
'CHARACTER_SET_NAME' => 'utf8mb4',
'COLLATION_NAME' => 'utf8mb4_general_ci',
'COLUMN_TYPE' => 'varchar(100)',
'COLUMN_KEY' => '',
'EXTRA' => '',
'PRIVILEGES' => 'select,insert,update,references',
'COLUMN_COMMENT' => '',
'IS_GENERATED' => 'NEVER',
'GENERATION_EXPRESSION' => NULL,
),
),
'indexes' =>
array (
'PRIMARY' =>
array (
1 =>
array (
'Table' => 'currencies',
'Non_unique' => '0',
'Key_name' => 'PRIMARY',
'Seq_in_index' => '1',
'Column_name' => 'id',
'Collation' => 'A',
'Sub_part' => NULL,
'Packed' => NULL,
'Null' => '',
'Index_type' => 'BTREE',
'Comment' => '',
'Index_comment' => '',
),
),
),
'foreign_keys' => NULL,
),
'values' =>
array (
'table' =>
array (
'table_name' => 'values',
'engine' => 'InnoDB',
'table_comment' => '',
'table_collation' => 'utf8mb4_general_ci',
'character_set_name' => 'utf8mb4',
'row_format' => 'Dynamic',
),
'columns' =>
array (
'currency_id' =>
array (
'TABLE_CATALOG' => 'def',
'TABLE_NAME' => 'values',
'COLUMN_NAME' => 'currency_id',
'ORDINAL_POSITION' => '1',
'COLUMN_DEFAULT' => NULL,
'IS_NULLABLE' => 'NO',
'DATA_TYPE' => 'int',
'CHARACTER_MAXIMUM_LENGTH' => NULL,
'CHARACTER_OCTET_LENGTH' => NULL,
'NUMERIC_PRECISION' => '10',
'NUMERIC_SCALE' => '0',
'DATETIME_PRECISION' => NULL,
'CHARACTER_SET_NAME' => NULL,
'COLLATION_NAME' => NULL,
'COLUMN_TYPE' => 'int(10) unsigned',
'COLUMN_KEY' => 'PRI',
'EXTRA' => '',
'PRIVILEGES' => 'select,insert,update,references',
'COLUMN_COMMENT' => '',
'IS_GENERATED' => 'NEVER',
'GENERATION_EXPRESSION' => NULL,
),
'date_time' =>
array (
'TABLE_CATALOG' => 'def',
'TABLE_NAME' => 'values',
'COLUMN_NAME' => 'date_time',
'ORDINAL_POSITION' => '2',
'COLUMN_DEFAULT' => NULL,
'IS_NULLABLE' => 'NO',
'DATA_TYPE' => 'datetime',
'CHARACTER_MAXIMUM_LENGTH' => NULL,
'CHARACTER_OCTET_LENGTH' => NULL,
'NUMERIC_PRECISION' => NULL,
'NUMERIC_SCALE' => NULL,
'DATETIME_PRECISION' => '0',
'CHARACTER_SET_NAME' => NULL,
'COLLATION_NAME' => NULL,
'COLUMN_TYPE' => 'datetime',
'COLUMN_KEY' => 'PRI',
'EXTRA' => '',
'PRIVILEGES' => 'select,insert,update,references',
'COLUMN_COMMENT' => '',
'IS_GENERATED' => 'NEVER',
'GENERATION_EXPRESSION' => NULL,
),
'value' =>
array (
'TABLE_CATALOG' => 'def',
'TABLE_NAME' => 'values',
'COLUMN_NAME' => 'value',
'ORDINAL_POSITION' => '3',
'COLUMN_DEFAULT' => NULL,
'IS_NULLABLE' => 'NO',
'DATA_TYPE' => 'double',
'CHARACTER_MAXIMUM_LENGTH' => NULL,
'CHARACTER_OCTET_LENGTH' => NULL,
'NUMERIC_PRECISION' => '22',
'NUMERIC_SCALE' => NULL,
'DATETIME_PRECISION' => NULL,
'CHARACTER_SET_NAME' => NULL,
'COLLATION_NAME' => NULL,
'COLUMN_TYPE' => 'double',
'COLUMN_KEY' => '',
'EXTRA' => '',
'PRIVILEGES' => 'select,insert,update,references',
'COLUMN_COMMENT' => '',
'IS_GENERATED' => 'NEVER',
'GENERATION_EXPRESSION' => NULL,
),
'base_id' =>
array (
'TABLE_CATALOG' => 'def',
'TABLE_NAME' => 'values',
'COLUMN_NAME' => 'base_id',
'ORDINAL_POSITION' => '4',
'COLUMN_DEFAULT' => NULL,
'IS_NULLABLE' => 'NO',
'DATA_TYPE' => 'int',
'CHARACTER_MAXIMUM_LENGTH' => NULL,
'CHARACTER_OCTET_LENGTH' => NULL,
'NUMERIC_PRECISION' => '10',
'NUMERIC_SCALE' => '0',
'DATETIME_PRECISION' => NULL,
'CHARACTER_SET_NAME' => NULL,
'COLLATION_NAME' => NULL,
'COLUMN_TYPE' => 'int(10) unsigned',
'COLUMN_KEY' => 'PRI',
'EXTRA' => '',
'PRIVILEGES' => 'select,insert,update,references',
'COLUMN_COMMENT' => '',
'IS_GENERATED' => 'NEVER',
'GENERATION_EXPRESSION' => NULL,
),
),
'indexes' =>
array (
'PRIMARY' =>
array (
1 =>
array (
'Table' => 'values',
'Non_unique' => '0',
'Key_name' => 'PRIMARY',
'Seq_in_index' => '1',
'Column_name' => 'date_time',
'Collation' => 'A',
'Sub_part' => NULL,
'Packed' => NULL,
'Null' => '',
'Index_type' => 'BTREE',
'Comment' => '',
'Index_comment' => '',
),
2 =>
array (
'Table' => 'values',
'Non_unique' => '0',
'Key_name' => 'PRIMARY',
'Seq_in_index' => '2',
'Column_name' => 'currency_id',
'Collation' => 'A',
'Sub_part' => NULL,
'Packed' => NULL,
'Null' => '',
'Index_type' => 'BTREE',
'Comment' => '',
'Index_comment' => '',
),
3 =>
array (
'Table' => 'values',
'Non_unique' => '0',
'Key_name' => 'PRIMARY',
'Seq_in_index' => '3',
'Column_name' => 'base_id',
'Collation' => 'A',
'Sub_part' => NULL,
'Packed' => NULL,
'Null' => '',
'Index_type' => 'BTREE',
'Comment' => '',
'Index_comment' => '',
),
),
'currency_id' =>
array (
1 =>
array (
'Table' => 'values',
'Non_unique' => '1',
'Key_name' => 'currency_id',
'Seq_in_index' => '1',
'Column_name' => 'currency_id',
'Collation' => 'A',
'Sub_part' => NULL,
'Packed' => NULL,
'Null' => '',
'Index_type' => 'BTREE',
'Comment' => '',
'Index_comment' => '',
),
),
'base_id' =>
array (
1 =>
array (
'Table' => 'values',
'Non_unique' => '1',
'Key_name' => 'base_id',
'Seq_in_index' => '1',
'Column_name' => 'base_id',
'Collation' => 'A',
'Sub_part' => NULL,
'Packed' => NULL,
'Null' => '',
'Index_type' => 'BTREE',
'Comment' => '',
'Index_comment' => '',
),
),
),
'foreign_keys' =>
array (
'values_ibfk_1' =>
array (
'TABLE_NAME' => 'values',
'COLUMN_NAME' => 'currency_id',
'CONSTRAINT_NAME' => 'values_ibfk_1',
'REFERENCED_TABLE_NAME' => 'currencies',
'REFERENCED_COLUMN_NAME' => 'id',
'UPDATE_RULE' => 'RESTRICT',
'DELETE_RULE' => 'CASCADE',
),
'values_ibfk_2' =>
array (
'TABLE_NAME' => 'values',
'COLUMN_NAME' => 'base_id',
'CONSTRAINT_NAME' => 'values_ibfk_2',
'REFERENCED_TABLE_NAME' => 'currencies',
'REFERENCED_COLUMN_NAME' => 'id',
'UPDATE_RULE' => 'RESTRICT',
'DELETE_RULE' => 'CASCADE',
),
),
),
),
);

5
db/schema.yml Normal file
View File

@ -0,0 +1,5 @@
tables:
- name: currencies
columns:
- name: id