Initial import of animal_management module
This commit is contained in:
94
migrations/m260403_130000_add_medical_stream_and_flags.php
Normal file
94
migrations/m260403_130000_add_medical_stream_and_flags.php
Normal file
@@ -0,0 +1,94 @@
|
||||
<?php
|
||||
|
||||
use humhub\components\Migration;
|
||||
|
||||
class m260403_130000_add_medical_stream_and_flags extends Migration
|
||||
{
|
||||
public function safeUp()
|
||||
{
|
||||
$medicalTable = $this->db->getSchema()->getTableSchema('rescue_animal_medical_visit', true);
|
||||
if ($medicalTable !== null) {
|
||||
if (!isset($medicalTable->columns['post_to_space_feed'])) {
|
||||
$this->addColumn('rescue_animal_medical_visit', 'post_to_space_feed', $this->boolean()->notNull()->defaultValue(0));
|
||||
}
|
||||
|
||||
if (!isset($medicalTable->columns['post_to_animal_feed'])) {
|
||||
$this->addColumn('rescue_animal_medical_visit', 'post_to_animal_feed', $this->boolean()->notNull()->defaultValue(1));
|
||||
}
|
||||
|
||||
$this->update('rescue_animal_medical_visit', ['post_to_space_feed' => 0], ['post_to_space_feed' => null]);
|
||||
$this->update('rescue_animal_medical_visit', ['post_to_animal_feed' => 1], ['post_to_animal_feed' => null]);
|
||||
}
|
||||
|
||||
if ($this->db->getSchema()->getTableSchema('rescue_animal_stream_entry', true) === null) {
|
||||
$this->safeCreateTable('rescue_animal_stream_entry', [
|
||||
'id' => $this->primaryKey(),
|
||||
'animal_id' => $this->integer()->notNull(),
|
||||
'entry_type' => $this->string(32)->notNull(),
|
||||
'medical_visit_id' => $this->integer()->null(),
|
||||
'progress_update_id' => $this->integer()->null(),
|
||||
'created_at' => $this->dateTime()->null(),
|
||||
'updated_at' => $this->dateTime()->null(),
|
||||
]);
|
||||
|
||||
$this->safeCreateIndex('idx_rescue_animal_stream_entry_animal', 'rescue_animal_stream_entry', 'animal_id', false);
|
||||
$this->safeCreateIndex('idx_rescue_animal_stream_entry_type', 'rescue_animal_stream_entry', 'entry_type', false);
|
||||
$this->safeCreateIndex('idx_rescue_animal_stream_entry_medical', 'rescue_animal_stream_entry', 'medical_visit_id', true);
|
||||
$this->safeCreateIndex('idx_rescue_animal_stream_entry_progress', 'rescue_animal_stream_entry', 'progress_update_id', true);
|
||||
|
||||
$this->safeAddForeignKey(
|
||||
'fk_rescue_animal_stream_entry_animal',
|
||||
'rescue_animal_stream_entry',
|
||||
'animal_id',
|
||||
'rescue_animal',
|
||||
'id',
|
||||
'CASCADE',
|
||||
'CASCADE'
|
||||
);
|
||||
|
||||
$medicalVisitTable = $this->db->getSchema()->getTableSchema('rescue_animal_medical_visit', true);
|
||||
if ($medicalVisitTable !== null) {
|
||||
$this->safeAddForeignKey(
|
||||
'fk_rescue_animal_stream_entry_medical',
|
||||
'rescue_animal_stream_entry',
|
||||
'medical_visit_id',
|
||||
'rescue_animal_medical_visit',
|
||||
'id',
|
||||
'CASCADE',
|
||||
'CASCADE'
|
||||
);
|
||||
}
|
||||
|
||||
$progressTable = $this->db->getSchema()->getTableSchema('rescue_animal_progress_update', true);
|
||||
if ($progressTable !== null) {
|
||||
$this->safeAddForeignKey(
|
||||
'fk_rescue_animal_stream_entry_progress',
|
||||
'rescue_animal_stream_entry',
|
||||
'progress_update_id',
|
||||
'rescue_animal_progress_update',
|
||||
'id',
|
||||
'CASCADE',
|
||||
'CASCADE'
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function safeDown()
|
||||
{
|
||||
if ($this->db->getSchema()->getTableSchema('rescue_animal_stream_entry', true) !== null) {
|
||||
$this->safeDropTable('rescue_animal_stream_entry');
|
||||
}
|
||||
|
||||
$medicalTable = $this->db->getSchema()->getTableSchema('rescue_animal_medical_visit', true);
|
||||
if ($medicalTable !== null) {
|
||||
if (isset($medicalTable->columns['post_to_space_feed'])) {
|
||||
$this->dropColumn('rescue_animal_medical_visit', 'post_to_space_feed');
|
||||
}
|
||||
|
||||
if (isset($medicalTable->columns['post_to_animal_feed'])) {
|
||||
$this->dropColumn('rescue_animal_medical_visit', 'post_to_animal_feed');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user