AT03
(AT03)
1
CREATE TABLE `source_message`
(
`id` integer NOT NULL AUTO_INCREMENT PRIMARY KEY,
`category` varchar(255),
`message` text
);
CREATE TABLE `message`
(
`id` integer NOT NULL,
`language` varchar(16) NOT NULL,
`translation` text
);
ALTER TABLE `message` ADD CONSTRAINT `pk_message_id_language` PRIMARY KEY (`id`, `language`);
ALTER TABLE `message` ADD CONSTRAINT `fk_message_source_message` FOREIGN KEY (`id`) REFERENCES `source_message` (`id`) ON UPDATE CASCADE ON DELETE RESTRICT;
<?php
use yii\db\Migration;
/**
* Handles the creation of table `{{%source_message}}`.
*/
class m220829_135557_create_source_message_table extends Migration
{
/**
* {@inheritdoc}
*/
public function safeUp()
{
$this->createTable('{{%source_message}}', [
'id' => $this->primaryKey(),
'category' => $this->string(32)->notNull(),
'message' => $this->text()->notNull()
]);
$this->addForeignKey('fk_message_source_message', 'message', 'id', '{{%source_message}}', 'id', 'CASCADE', 'RESTRICT');
// $this->addForeignKey('{{%fk-message-source_message}}', '{{%message}}', 'message', '{{%source_message}}', 'id', 'CASCADE', 'RESTRICT');
}
/**
* {@inheritdoc}
*/
public function safeDown()
{
$this->dropTable('{{%source_message}}');
}
}
<?php
use yii\db\Migration;
/**
* Handles the creation of table `{{%message}}`.
*/
class m220829_135609_create_message_table extends Migration
{
/**
* {@inheritdoc}
*/
public function safeUp()
{
$this->createTable('{{%message}}', [
'id' => $this->primaryKey(),
'language' => $this->string(16)->notNull()->unique(),
'translation' => $this->text()->notNull()
]);
}
/**
* {@inheritdoc}
*/
public function safeDown()
{
$this->dropTable('{{%message}}');
}
}
evstevemd
(Stefano Mtangoo)
2
best way is running ./yii migrate/up
on test database and see if it actually creates the tables as needed. Unless I missed your question!
1 Like