migrate_water_routing.php 995 B

1234567891011121314
  1. <?php
  2. /** 仅增加路线优化元数据及短期预览表,保留全部原业务数据。 */
  3. require dirname(__DIR__).'/vendor/autoload.php';
  4. \Dotenv\Dotenv::createUnsafeMutable(dirname(__DIR__))->load();
  5. \support\App::loadAllConfig(['route']);
  6. use support\Db;
  7. if (!in_array('--apply',$argv,true)) { echo "Plan: add nullable route optimization JSON text and route preview table. No data deletion.\n"; exit; }
  8. if (!Db::select("SHOW COLUMNS FROM sa_water_route LIKE 'optimization'")) Db::statement('ALTER TABLE sa_water_route ADD COLUMN optimization LONGTEXT NULL');
  9. Db::statement("CREATE TABLE IF NOT EXISTS sa_water_route_preview (
  10. id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, token CHAR(64) NOT NULL, actor_id BIGINT UNSIGNED NOT NULL,
  11. tasks_hash CHAR(64) NOT NULL, payload LONGTEXT NOT NULL, expires_at DATETIME NOT NULL,
  12. UNIQUE KEY preview_token(token), KEY preview_expiry(expires_at)
  13. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4");
  14. echo "Applied additive route optimization migration.\n";