M250325104820AddColumnAddonsNameToAttachment.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace app\migrations;
  3. use yii\db\Migration;
  4. /**
  5. * Class M250325104820AddColumnAddonsNameToAttachment
  6. */
  7. class M250325104820AddColumnAddonsNameToAttachment extends Migration
  8. {
  9. /**
  10. * {@inheritdoc}
  11. */
  12. public function safeUp()
  13. {
  14. $sql = <<<SQL
  15. SET @dbname = DATABASE();
  16. SET @tablename = 'qimall_attachment';
  17. SET @columnname = 'addons_name';
  18. SET @preparedStatement = (SELECT IF(
  19. (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
  20. WHERE TABLE_SCHEMA = @dbname
  21. AND TABLE_NAME = @tablename
  22. AND COLUMN_NAME = @columnname) > 0,
  23. 'SELECT 1;',
  24. CONCAT('ALTER TABLE `', @tablename, '` ADD COLUMN `', @columnname, '` varchar(50) NOT NULL DEFAULT '''' COMMENT ''所属插件'';')
  25. ));
  26. PREPARE alterIfNotExists FROM @preparedStatement;
  27. EXECUTE alterIfNotExists;
  28. DEALLOCATE PREPARE alterIfNotExists;
  29. SQL;
  30. $this->execute($sql);
  31. }
  32. /**
  33. * {@inheritdoc}
  34. */
  35. public function safeDown()
  36. {
  37. echo "M250325104820AddColumnAddonsNameToAttachment cannot be reverted.\n";
  38. return false;
  39. }
  40. /*
  41. // Use up()/down() to run migration code without a transaction.
  42. public function up()
  43. {
  44. }
  45. public function down()
  46. {
  47. echo "M250325104820AddColumnAddonsNameToAttachment cannot be reverted.\n";
  48. return false;
  49. }
  50. */
  51. }