migrate_water_alert_setting.php 1.5 KB

123456789101112131415161718192021222324
  1. <?php
  2. require dirname(__DIR__).'/vendor/autoload.php';
  3. \Dotenv\Dotenv::createUnsafeMutable(dirname(__DIR__))->load();
  4. \support\App::loadAllConfig(['route']);
  5. use plugin\saiadmin\app\model\water\WaterAlertSetting;
  6. $schema=(new WaterAlertSetting())->getConnection()->getSchemaBuilder();
  7. if (!in_array('--apply',$argv,true)) { echo "Plan: create platform alert settings with defaults 5 barrels / 3 days / urgent 2.\n"; exit; }
  8. if (!$schema->hasTable('sa_water_alert_setting')) {
  9. $schema->create('sa_water_alert_setting',function (\Illuminate\Database\Schema\Blueprint $table) {
  10. $table->engine = 'InnoDB';
  11. $table->unsignedInteger('id')->primary();
  12. $table->unsignedInteger('alert_qty');
  13. $table->unsignedInteger('days_per_barrel');
  14. $table->unsignedInteger('urgent_qty');
  15. $table->unsignedInteger('revision')->default(1);
  16. $table->unsignedBigInteger('updated_by')->default(0);
  17. $table->dateTime('updated_at')->nullable();
  18. });
  19. }
  20. $db=(new WaterAlertSetting())->getConnection();
  21. $engine=$db->selectOne("SELECT ENGINE AS engine FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='sa_water_alert_setting'");
  22. if (strtoupper((string)$engine->engine)!=='INNODB') $db->statement('ALTER TABLE sa_water_alert_setting ENGINE=InnoDB');
  23. WaterAlertSetting::query()->insertOrIgnore(['id'=>1,'alert_qty'=>5,'days_per_barrel'=>3,'urgent_qty'=>2,'revision'=>1]);
  24. echo "Applied: platform alert settings ready; existing settings preserved.\n";