From a870037300994325bbbd50241d7b6729848faed6 Mon Sep 17 00:00:00 2001 From: Victor Skvortsov Date: Wed, 18 Feb 2026 15:25:37 +0500 Subject: [PATCH] Group db migrations --- src/dstack/_internal/server/alembic.ini | 6 +++--- src/dstack/_internal/server/db.py | 1 + src/dstack/_internal/server/migrations/script.py.mako | 2 +- .../{a060e2440936_.py => 2023/09_20_1634_a060e2440936_.py} | 0 .../{bfba43f6def2_.py => 2023/09_22_1052_bfba43f6def2_.py} | 0 .../{252d3743b641_.py => 2023/09_25_1609_252d3743b641_.py} | 0 .../09_27_1742_fe72c4de8376_add_gateways.py} | 0 ...1_01_1019_d0bb68e48b9f_add_project_owners_and_quotas.py} | 0 .../11_01_1135_112753bc17dd_remove_nullable_fields.py} | 0 .../11_03_1646_14f2cb002fc2_add_jobmodel_removed_flag.py} | 0 .../11_06_1613_23e01c56279a_make_blob_nullable.py} | 0 .../11_14_1041_3dbdce90d0e0_fix_code_uq_constraint.py} | 0 .../11_14_1609_686fb8341ea5_add_user_emails.py} | 0 ..._11_1034_e6391ca6a264_separate_gateways_from_compute.py} | 0 ...19_1555_48ad3ecbaea2_do_not_delete_projects_and_runs.py} | 0 ...01_09_1223_d3e8af4786fa_gateway_compute_flag_deleted.py} | 0 .../02_12_1427_27d3e55759fa_add_pools.py} | 0 .../{29c08c6a8cb3_.py => 2024/02_14_1139_29c08c6a8cb3_.py} | 0 ...139_9eea6af28e10_added_fail_reason_for_instancemodel.py} | 0 .../02_21_1011_1a48dfe44a40_rework_termination_handling.py} | 0 ...547_ed0ca30e13bb_migrate_instancestatus_provisioning.py} | 0 ...02_28_0615_b88d55c2a07d_replace_instancestatus_ready.py} | 0 .../03_01_1430_4b4319398164_introduce_runs_processing.py} | 0 .../03_07_1721_0e33559e16ed_update_instancestatus.py} | 0 ..._555138b1f77f_change_instancemodel_for_asynchronous_.py} | 0 .../03_13_1048_5ec538b70e71_replace_instansestatus.py} | 0 .../03_18_1216_4ae1a5b0e7f1_add_run_list_index.py} | 0 ..._29_0637_99b4c8c954ea_add_termination_reason_message.py} | 0 ...02_0142_866ec1d67184_replace_retrypolicy_limit_with_.py} | 0 ...4_08_0802_1e3fb39ef74b_add_remote_connection_details.py} | 0 ..._15_1104_58aa5162dcc3_add_gatewaymodel_configuration.py} | 0 ...8_c154eece89da_add_fields_for_async_gateway_creation.py} | 0 ...1338_dfffd6a1165c_add_fields_for_gateways_behind_alb.py} | 0 ..._1040_29826f417010_remove_instancemodel_retry_policy.py} | 0 ...5_30_0955_b4d6ad60db08_add_instancemodel_unreachable.py} | 0 .../06_26_1122_98cd9c8b5927_add_volumemodel.py} | 0 .../07_04_1726_5ad8debc8fe6_fixes_for_psql.py} | 0 .../07_14_2143_91ac5e543037_extend_repos_creds_column.py} | 0 .../07_15_2309_3cf77fb8bcf1_store_repo_clone_url.py} | 0 .../07_17_1543_c00090eaef21_support_fleets.py} | 0 .../08_15_1024_710e5b3fac8f_add_encryption.py} | 0 .../08_16_1425_54a77e19c64c_add_manager_project_role.py} | 0 .../08_19_1510_d6b11105f659_add_usermodel_active.py} | 0 .../08_21_1420_ea60480f82bb_add_membermodel_member_num.py} | 0 ...342_7b24b1c8eba7_add_instancemodel_last_processed_at.py} | 0 .../09_10_1107_c83d45f9a971_replace_string_with_text.py} | 0 ..._e3b7db07727f_add_gatewaycomputemodel_app_updated_at.py} | 0 .../09_25_1352_a7b46c073fa1_add_placementgroupmodel.py} | 0 .../10_14_1126_c20626d03cfb_add_jobmetricspoint.py} | 0 ...6_1431_afbc600ff2b2_add_created_at_to_usermodel_and_.py} | 0 .../{82b32a135ea2_.py => 2024/11_04_1546_82b32a135ea2_.py} | 0 .../11_14_1031_91a12fff6c76_add_repocredsmodel.py} | 0 ...2_24_1256_065588ec72b8_add_vultr_to_backendtype_enum.py} | 0 ...1_10_1417_803c7e9ed85d_add_jobmodel_job_runtime_data.py} | 0 ...4_1333_c48df7985d57_add_instance_termination_retries.py} | 0 ..._1459_1338b788b612_reverse_job_instance_relationship.py} | 0 ..._ffa99edd1988_add_jobterminationreason_max_duration_.py} | 0 ...9_1152_da574e93fee0_add_jobmodel_volumes_detached_at.py} | 0 ...04_1110_51d45659d574_add_instancemodel_blocks_fields.py} | 0 ...30_63c3f19cb184_add_jobterminationreason_inactivity_.py} | 0 ...02_11_2337_1e76fb0dde87_add_jobmodel_inactivity_secs.py} | 0 ...2_1319_a751ef183f27_move_attachment_data_to_volumes_.py} | 0 .../02_21_1059_60e444118b6d_add_jobprometheusmetrics.py} | 0 ...8d1b92988bc_add_jobterminationreason_terminated_due_.py} | 0 .../03_10_1449_bc8ca4a505c6_store_backendtype_as_string.py} | 0 ...113_7bc2586e8b9e_make_instancemodel_pool_id_optional.py} | 0 ..._1800_7ba3b59d7ca6_add_runmodel_resubmission_attempt.py} | 0 .../05_09_1025_6c1a9d6530ee_add_jobmodel_exit_status.py} | 0 ...05_13_1624_20166748b60c_add_jobmodel_disconnected_at.py} | 0 .../05_14_1524_bca2fdf130bf_add_runmodel_priority.py} | 0 ...5_29_1530_35e90e1b0d3e_add_rolling_deployment_fields.py} | 0 .../06_06_1304_35f732ee4cf5_add_projectmodel_is_public.py} | 0 .../06_12_1228_5f1707c525d2_add_filearchivemodel.py} | 0 .../06_30_1100_644b8a114187_add_secretmodel.py} | 0 ...6_d5863798bf41_add_volumemodel_last_job_processed_at.py} | 0 ..._17_1547_ec02a26a256c_add_runmodel_next_triggered_at.py} | 0 .../07_25_1036_50dd7ea98639_index_status_columns.py} | 0 .../08_01_1456_728b1488b1b4_add_instance_health.py} | 0 .../08_03_1951_25479f540245_add_probes.py} | 0 .../08_06_1349_74a1f55209bd_store_enums_as_strings.py} | 0 .../08_11_1323_3d7f6c2ec000_add_jobmodel_registered.py} | 0 .../08_15_1126_e2d08cd1b8d9_add_jobmodel_fleet.py} | 0 ...8_2498ab323443_add_fleetmodel_consolidation_attempt_.py} | 0 .../10_09_2031_ff1d94f65b08_user_ssh_key.py} | 0 .../10_21_1601_7d1ec2b920ac_add_computegroupmodel.py} | 0 ...06e977bc61c7_add_usermodel_deleted_and_original_name.py} | 0 .../11_27_1511_006512f572b4_add_projects_original_name.py} | 0 .../12_04_2048_d4d9dc26cf58_add_ix_jobs_run_id.py} | 0 .../12_04_2052_5fd659afca82_add_ix_instances_fleet_id.py} | 0 ...12_04_2056_22d74df9897e_add_events_and_event_targets.py} | 0 ...054_706e0acc3a7d_add_runmodel_desired_replica_counts.py} | 0 .../12_21_2208_1aa9638ad963_added_email_index.py} | 0 ...03c91e24634_add_instances_termination_reason_message.py} | 0 ..._57cff3ec86ce_add_computegroupmodel_pipeline_columns.py} | 0 ...c2a227b0154_add_placementgroupmodel_pipeline_columns.py} | 0 ...2_a8ed24fd7f90_add_pipeline_indexes_for_compute_and_.py} | 0 96 files changed, 5 insertions(+), 4 deletions(-) rename src/dstack/_internal/server/migrations/versions/{a060e2440936_.py => 2023/09_20_1634_a060e2440936_.py} (100%) rename src/dstack/_internal/server/migrations/versions/{bfba43f6def2_.py => 2023/09_22_1052_bfba43f6def2_.py} (100%) rename src/dstack/_internal/server/migrations/versions/{252d3743b641_.py => 2023/09_25_1609_252d3743b641_.py} (100%) rename src/dstack/_internal/server/migrations/versions/{fe72c4de8376_add_gateways.py => 2023/09_27_1742_fe72c4de8376_add_gateways.py} (100%) rename src/dstack/_internal/server/migrations/versions/{d0bb68e48b9f_add_project_owners_and_quotas.py => 2023/11_01_1019_d0bb68e48b9f_add_project_owners_and_quotas.py} (100%) rename src/dstack/_internal/server/migrations/versions/{112753bc17dd_remove_nullable_fields.py => 2023/11_01_1135_112753bc17dd_remove_nullable_fields.py} (100%) rename src/dstack/_internal/server/migrations/versions/{14f2cb002fc2_add_jobmodel_removed_flag.py => 2023/11_03_1646_14f2cb002fc2_add_jobmodel_removed_flag.py} (100%) rename src/dstack/_internal/server/migrations/versions/{23e01c56279a_make_blob_nullable.py => 2023/11_06_1613_23e01c56279a_make_blob_nullable.py} (100%) rename src/dstack/_internal/server/migrations/versions/{3dbdce90d0e0_fix_code_uq_constraint.py => 2023/11_14_1041_3dbdce90d0e0_fix_code_uq_constraint.py} (100%) rename src/dstack/_internal/server/migrations/versions/{686fb8341ea5_add_user_emails.py => 2023/11_14_1609_686fb8341ea5_add_user_emails.py} (100%) rename src/dstack/_internal/server/migrations/versions/{e6391ca6a264_separate_gateways_from_compute.py => 2023/12_11_1034_e6391ca6a264_separate_gateways_from_compute.py} (100%) rename src/dstack/_internal/server/migrations/versions/{48ad3ecbaea2_do_not_delete_projects_and_runs.py => 2023/12_19_1555_48ad3ecbaea2_do_not_delete_projects_and_runs.py} (100%) rename src/dstack/_internal/server/migrations/versions/{d3e8af4786fa_gateway_compute_flag_deleted.py => 2024/01_09_1223_d3e8af4786fa_gateway_compute_flag_deleted.py} (100%) rename src/dstack/_internal/server/migrations/versions/{27d3e55759fa_add_pools.py => 2024/02_12_1427_27d3e55759fa_add_pools.py} (100%) rename src/dstack/_internal/server/migrations/versions/{29c08c6a8cb3_.py => 2024/02_14_1139_29c08c6a8cb3_.py} (100%) rename src/dstack/_internal/server/migrations/versions/{9eea6af28e10_added_fail_reason_for_instancemodel.py => 2024/02_19_1139_9eea6af28e10_added_fail_reason_for_instancemodel.py} (100%) rename src/dstack/_internal/server/migrations/versions/{1a48dfe44a40_rework_termination_handling.py => 2024/02_21_1011_1a48dfe44a40_rework_termination_handling.py} (100%) rename src/dstack/_internal/server/migrations/versions/{ed0ca30e13bb_migrate_instancestatus_provisioning.py => 2024/02_28_0547_ed0ca30e13bb_migrate_instancestatus_provisioning.py} (100%) rename src/dstack/_internal/server/migrations/versions/{b88d55c2a07d_replace_instancestatus_ready.py => 2024/02_28_0615_b88d55c2a07d_replace_instancestatus_ready.py} (100%) rename src/dstack/_internal/server/migrations/versions/{4b4319398164_introduce_runs_processing.py => 2024/03_01_1430_4b4319398164_introduce_runs_processing.py} (100%) rename src/dstack/_internal/server/migrations/versions/{0e33559e16ed_update_instancestatus.py => 2024/03_07_1721_0e33559e16ed_update_instancestatus.py} (100%) rename src/dstack/_internal/server/migrations/versions/{555138b1f77f_change_instancemodel_for_asynchronous_.py => 2024/03_12_1717_555138b1f77f_change_instancemodel_for_asynchronous_.py} (100%) rename src/dstack/_internal/server/migrations/versions/{5ec538b70e71_replace_instansestatus.py => 2024/03_13_1048_5ec538b70e71_replace_instansestatus.py} (100%) rename src/dstack/_internal/server/migrations/versions/{4ae1a5b0e7f1_add_run_list_index.py => 2024/03_18_1216_4ae1a5b0e7f1_add_run_list_index.py} (100%) rename src/dstack/_internal/server/migrations/versions/{99b4c8c954ea_add_termination_reason_message.py => 2024/03_29_0637_99b4c8c954ea_add_termination_reason_message.py} (100%) rename src/dstack/_internal/server/migrations/versions/{866ec1d67184_replace_retrypolicy_limit_with_.py => 2024/04_02_0142_866ec1d67184_replace_retrypolicy_limit_with_.py} (100%) rename src/dstack/_internal/server/migrations/versions/{1e3fb39ef74b_add_remote_connection_details.py => 2024/04_08_0802_1e3fb39ef74b_add_remote_connection_details.py} (100%) rename src/dstack/_internal/server/migrations/versions/{58aa5162dcc3_add_gatewaymodel_configuration.py => 2024/05_15_1104_58aa5162dcc3_add_gatewaymodel_configuration.py} (100%) rename src/dstack/_internal/server/migrations/versions/{c154eece89da_add_fields_for_async_gateway_creation.py => 2024/05_16_1418_c154eece89da_add_fields_for_async_gateway_creation.py} (100%) rename src/dstack/_internal/server/migrations/versions/{dfffd6a1165c_add_fields_for_gateways_behind_alb.py => 2024/05_22_1338_dfffd6a1165c_add_fields_for_gateways_behind_alb.py} (100%) rename src/dstack/_internal/server/migrations/versions/{29826f417010_remove_instancemodel_retry_policy.py => 2024/05_29_1040_29826f417010_remove_instancemodel_retry_policy.py} (100%) rename src/dstack/_internal/server/migrations/versions/{b4d6ad60db08_add_instancemodel_unreachable.py => 2024/05_30_0955_b4d6ad60db08_add_instancemodel_unreachable.py} (100%) rename src/dstack/_internal/server/migrations/versions/{98cd9c8b5927_add_volumemodel.py => 2024/06_26_1122_98cd9c8b5927_add_volumemodel.py} (100%) rename src/dstack/_internal/server/migrations/versions/{5ad8debc8fe6_fixes_for_psql.py => 2024/07_04_1726_5ad8debc8fe6_fixes_for_psql.py} (100%) rename src/dstack/_internal/server/migrations/versions/{91ac5e543037_extend_repos_creds_column.py => 2024/07_14_2143_91ac5e543037_extend_repos_creds_column.py} (100%) rename src/dstack/_internal/server/migrations/versions/{3cf77fb8bcf1_store_repo_clone_url.py => 2024/07_15_2309_3cf77fb8bcf1_store_repo_clone_url.py} (100%) rename src/dstack/_internal/server/migrations/versions/{c00090eaef21_support_fleets.py => 2024/07_17_1543_c00090eaef21_support_fleets.py} (100%) rename src/dstack/_internal/server/migrations/versions/{710e5b3fac8f_add_encryption.py => 2024/08_15_1024_710e5b3fac8f_add_encryption.py} (100%) rename src/dstack/_internal/server/migrations/versions/{54a77e19c64c_add_manager_project_role.py => 2024/08_16_1425_54a77e19c64c_add_manager_project_role.py} (100%) rename src/dstack/_internal/server/migrations/versions/{d6b11105f659_add_usermodel_active.py => 2024/08_19_1510_d6b11105f659_add_usermodel_active.py} (100%) rename src/dstack/_internal/server/migrations/versions/{ea60480f82bb_add_membermodel_member_num.py => 2024/08_21_1420_ea60480f82bb_add_membermodel_member_num.py} (100%) rename src/dstack/_internal/server/migrations/versions/{7b24b1c8eba7_add_instancemodel_last_processed_at.py => 2024/08_30_1342_7b24b1c8eba7_add_instancemodel_last_processed_at.py} (100%) rename src/dstack/_internal/server/migrations/versions/{c83d45f9a971_replace_string_with_text.py => 2024/09_10_1107_c83d45f9a971_replace_string_with_text.py} (100%) rename src/dstack/_internal/server/migrations/versions/{e3b7db07727f_add_gatewaycomputemodel_app_updated_at.py => 2024/09_17_1223_e3b7db07727f_add_gatewaycomputemodel_app_updated_at.py} (100%) rename src/dstack/_internal/server/migrations/versions/{a7b46c073fa1_add_placementgroupmodel.py => 2024/09_25_1352_a7b46c073fa1_add_placementgroupmodel.py} (100%) rename src/dstack/_internal/server/migrations/versions/{c20626d03cfb_add_jobmetricspoint.py => 2024/10_14_1126_c20626d03cfb_add_jobmetricspoint.py} (100%) rename src/dstack/_internal/server/migrations/versions/{afbc600ff2b2_add_created_at_to_usermodel_and_.py => 2024/10_16_1431_afbc600ff2b2_add_created_at_to_usermodel_and_.py} (100%) rename src/dstack/_internal/server/migrations/versions/{82b32a135ea2_.py => 2024/11_04_1546_82b32a135ea2_.py} (100%) rename src/dstack/_internal/server/migrations/versions/{91a12fff6c76_add_repocredsmodel.py => 2024/11_14_1031_91a12fff6c76_add_repocredsmodel.py} (100%) rename src/dstack/_internal/server/migrations/versions/{065588ec72b8_add_vultr_to_backendtype_enum.py => 2024/12_24_1256_065588ec72b8_add_vultr_to_backendtype_enum.py} (100%) rename src/dstack/_internal/server/migrations/versions/{803c7e9ed85d_add_jobmodel_job_runtime_data.py => 2025/01_10_1417_803c7e9ed85d_add_jobmodel_job_runtime_data.py} (100%) rename src/dstack/_internal/server/migrations/versions/{c48df7985d57_add_instance_termination_retries.py => 2025/01_14_1333_c48df7985d57_add_instance_termination_retries.py} (100%) rename src/dstack/_internal/server/migrations/versions/{1338b788b612_reverse_job_instance_relationship.py => 2025/01_16_1459_1338b788b612_reverse_job_instance_relationship.py} (100%) rename src/dstack/_internal/server/migrations/versions/{ffa99edd1988_add_jobterminationreason_max_duration_.py => 2025/01_21_1053_ffa99edd1988_add_jobterminationreason_max_duration_.py} (100%) rename src/dstack/_internal/server/migrations/versions/{da574e93fee0_add_jobmodel_volumes_detached_at.py => 2025/01_29_1152_da574e93fee0_add_jobmodel_volumes_detached_at.py} (100%) rename src/dstack/_internal/server/migrations/versions/{51d45659d574_add_instancemodel_blocks_fields.py => 2025/02_04_1110_51d45659d574_add_instancemodel_blocks_fields.py} (100%) rename src/dstack/_internal/server/migrations/versions/{63c3f19cb184_add_jobterminationreason_inactivity_.py => 2025/02_11_2230_63c3f19cb184_add_jobterminationreason_inactivity_.py} (100%) rename src/dstack/_internal/server/migrations/versions/{1e76fb0dde87_add_jobmodel_inactivity_secs.py => 2025/02_11_2337_1e76fb0dde87_add_jobmodel_inactivity_secs.py} (100%) rename src/dstack/_internal/server/migrations/versions/{a751ef183f27_move_attachment_data_to_volumes_.py => 2025/02_12_1319_a751ef183f27_move_attachment_data_to_volumes_.py} (100%) rename src/dstack/_internal/server/migrations/versions/{60e444118b6d_add_jobprometheusmetrics.py => 2025/02_21_1059_60e444118b6d_add_jobprometheusmetrics.py} (100%) rename src/dstack/_internal/server/migrations/versions/{98d1b92988bc_add_jobterminationreason_terminated_due_.py => 2025/02_28_1512_98d1b92988bc_add_jobterminationreason_terminated_due_.py} (100%) rename src/dstack/_internal/server/migrations/versions/{bc8ca4a505c6_store_backendtype_as_string.py => 2025/03_10_1449_bc8ca4a505c6_store_backendtype_as_string.py} (100%) rename src/dstack/_internal/server/migrations/versions/{7bc2586e8b9e_make_instancemodel_pool_id_optional.py => 2025/03_13_1113_7bc2586e8b9e_make_instancemodel_pool_id_optional.py} (100%) rename src/dstack/_internal/server/migrations/versions/{7ba3b59d7ca6_add_runmodel_resubmission_attempt.py => 2025/04_15_1800_7ba3b59d7ca6_add_runmodel_resubmission_attempt.py} (100%) rename src/dstack/_internal/server/migrations/versions/{6c1a9d6530ee_add_jobmodel_exit_status.py => 2025/05_09_1025_6c1a9d6530ee_add_jobmodel_exit_status.py} (100%) rename src/dstack/_internal/server/migrations/versions/{20166748b60c_add_jobmodel_disconnected_at.py => 2025/05_13_1624_20166748b60c_add_jobmodel_disconnected_at.py} (100%) rename src/dstack/_internal/server/migrations/versions/{bca2fdf130bf_add_runmodel_priority.py => 2025/05_14_1524_bca2fdf130bf_add_runmodel_priority.py} (100%) rename src/dstack/_internal/server/migrations/versions/{35e90e1b0d3e_add_rolling_deployment_fields.py => 2025/05_29_1530_35e90e1b0d3e_add_rolling_deployment_fields.py} (100%) rename src/dstack/_internal/server/migrations/versions/{35f732ee4cf5_add_projectmodel_is_public.py => 2025/06_06_1304_35f732ee4cf5_add_projectmodel_is_public.py} (100%) rename src/dstack/_internal/server/migrations/versions/{5f1707c525d2_add_filearchivemodel.py => 2025/06_12_1228_5f1707c525d2_add_filearchivemodel.py} (100%) rename src/dstack/_internal/server/migrations/versions/{644b8a114187_add_secretmodel.py => 2025/06_30_1100_644b8a114187_add_secretmodel.py} (100%) rename src/dstack/_internal/server/migrations/versions/{d5863798bf41_add_volumemodel_last_job_processed_at.py => 2025/07_15_1426_d5863798bf41_add_volumemodel_last_job_processed_at.py} (100%) rename src/dstack/_internal/server/migrations/versions/{ec02a26a256c_add_runmodel_next_triggered_at.py => 2025/07_17_1547_ec02a26a256c_add_runmodel_next_triggered_at.py} (100%) rename src/dstack/_internal/server/migrations/versions/{50dd7ea98639_index_status_columns.py => 2025/07_25_1036_50dd7ea98639_index_status_columns.py} (100%) rename src/dstack/_internal/server/migrations/versions/{728b1488b1b4_add_instance_health.py => 2025/08_01_1456_728b1488b1b4_add_instance_health.py} (100%) rename src/dstack/_internal/server/migrations/versions/{25479f540245_add_probes.py => 2025/08_03_1951_25479f540245_add_probes.py} (100%) rename src/dstack/_internal/server/migrations/versions/{74a1f55209bd_store_enums_as_strings.py => 2025/08_06_1349_74a1f55209bd_store_enums_as_strings.py} (100%) rename src/dstack/_internal/server/migrations/versions/{3d7f6c2ec000_add_jobmodel_registered.py => 2025/08_11_1323_3d7f6c2ec000_add_jobmodel_registered.py} (100%) rename src/dstack/_internal/server/migrations/versions/{e2d08cd1b8d9_add_jobmodel_fleet.py => 2025/08_15_1126_e2d08cd1b8d9_add_jobmodel_fleet.py} (100%) rename src/dstack/_internal/server/migrations/versions/{2498ab323443_add_fleetmodel_consolidation_attempt_.py => 2025/08_29_1608_2498ab323443_add_fleetmodel_consolidation_attempt_.py} (100%) rename src/dstack/_internal/server/migrations/versions/{ff1d94f65b08_user_ssh_key.py => 2025/10_09_2031_ff1d94f65b08_user_ssh_key.py} (100%) rename src/dstack/_internal/server/migrations/versions/{7d1ec2b920ac_add_computegroupmodel.py => 2025/10_21_1601_7d1ec2b920ac_add_computegroupmodel.py} (100%) rename src/dstack/_internal/server/migrations/versions/{06e977bc61c7_add_usermodel_deleted_and_original_name.py => 2025/11_26_1143_06e977bc61c7_add_usermodel_deleted_and_original_name.py} (100%) rename src/dstack/_internal/server/migrations/versions/{006512f572b4_add_projects_original_name.py => 2025/11_27_1511_006512f572b4_add_projects_original_name.py} (100%) rename src/dstack/_internal/server/migrations/versions/{d4d9dc26cf58_add_ix_jobs_run_id.py => 2025/12_04_2048_d4d9dc26cf58_add_ix_jobs_run_id.py} (100%) rename src/dstack/_internal/server/migrations/versions/{5fd659afca82_add_ix_instances_fleet_id.py => 2025/12_04_2052_5fd659afca82_add_ix_instances_fleet_id.py} (100%) rename src/dstack/_internal/server/migrations/versions/{22d74df9897e_add_events_and_event_targets.py => 2025/12_04_2056_22d74df9897e_add_events_and_event_targets.py} (100%) rename src/dstack/_internal/server/migrations/versions/{706e0acc3a7d_add_runmodel_desired_replica_counts.py => 2025/12_18_1054_706e0acc3a7d_add_runmodel_desired_replica_counts.py} (100%) rename src/dstack/_internal/server/migrations/versions/{1aa9638ad963_added_email_index.py => 2025/12_21_2208_1aa9638ad963_added_email_index.py} (100%) rename src/dstack/_internal/server/migrations/versions/{903c91e24634_add_instances_termination_reason_message.py => 2025/12_22_1217_903c91e24634_add_instances_termination_reason_message.py} (100%) rename src/dstack/_internal/server/migrations/versions/{57cff3ec86ce_add_computegroupmodel_pipeline_columns.py => 2026/02_18_1107_57cff3ec86ce_add_computegroupmodel_pipeline_columns.py} (100%) rename src/dstack/_internal/server/migrations/versions/{9c2a227b0154_add_placementgroupmodel_pipeline_columns.py => 2026/02_18_1108_9c2a227b0154_add_placementgroupmodel_pipeline_columns.py} (100%) rename src/dstack/_internal/server/migrations/versions/{a8ed24fd7f90_add_pipeline_indexes_for_compute_and_.py => 2026/02_18_1122_a8ed24fd7f90_add_pipeline_indexes_for_compute_and_.py} (100%) diff --git a/src/dstack/_internal/server/alembic.ini b/src/dstack/_internal/server/alembic.ini index 5e498c368c..c4c6840f01 100644 --- a/src/dstack/_internal/server/alembic.ini +++ b/src/dstack/_internal/server/alembic.ini @@ -8,7 +8,7 @@ script_location = migrations # Uncomment the line below if you want the files to be prepended with date and time # see https://alembic.sqlalchemy.org/en/latest/tutorial.html#editing-the-ini-file # for all available tokens -# file_template = %%(year)d_%%(month).2d_%%(day).2d_%%(hour).2d%%(minute).2d-%%(rev)s_%%(slug)s +file_template = %%(year)d/%%(month).2d_%%(day).2d_%%(hour).2d%%(minute).2d_%%(rev)s_%%(slug)s # sys.path path, will be prepended to sys.path if present. # defaults to the current working directory. @@ -20,7 +20,7 @@ prepend_sys_path = . # installed by adding `alembic[tz]` to the pip requirements # string value is passed to dateutil.tz.gettz() # leave blank for localtime -# timezone = +timezone = utc # max length of characters to apply to the # "slug" field @@ -50,7 +50,7 @@ path_separator = os # set to 'true' to search source files recursively # in each "version_locations" directory # new in Alembic version 1.10 -# recursive_version_locations = false +recursive_version_locations = true # the output encoding used when revision files # are written from script.py.mako diff --git a/src/dstack/_internal/server/db.py b/src/dstack/_internal/server/db.py index 5f43f52e0a..2eb18a3f3c 100644 --- a/src/dstack/_internal/server/db.py +++ b/src/dstack/_internal/server/db.py @@ -125,5 +125,6 @@ async def sqlite_commit(session: AsyncSession): def _run_alembic_upgrade(connection): alembic_cfg = config.Config() alembic_cfg.set_main_option("script_location", settings.ALEMBIC_MIGRATIONS_LOCATION) + alembic_cfg.set_main_option("recursive_version_locations", "true") alembic_cfg.attributes["connection"] = connection command.upgrade(alembic_cfg, "head") diff --git a/src/dstack/_internal/server/migrations/script.py.mako b/src/dstack/_internal/server/migrations/script.py.mako index e5ecbc9a75..79c96c3a3d 100644 --- a/src/dstack/_internal/server/migrations/script.py.mako +++ b/src/dstack/_internal/server/migrations/script.py.mako @@ -6,9 +6,9 @@ Create Date: ${create_date} """ -from alembic import op import sqlalchemy as sa import sqlalchemy_utils +from alembic import op import dstack._internal.server.models ${imports if imports else ""} diff --git a/src/dstack/_internal/server/migrations/versions/a060e2440936_.py b/src/dstack/_internal/server/migrations/versions/2023/09_20_1634_a060e2440936_.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/a060e2440936_.py rename to src/dstack/_internal/server/migrations/versions/2023/09_20_1634_a060e2440936_.py diff --git a/src/dstack/_internal/server/migrations/versions/bfba43f6def2_.py b/src/dstack/_internal/server/migrations/versions/2023/09_22_1052_bfba43f6def2_.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/bfba43f6def2_.py rename to src/dstack/_internal/server/migrations/versions/2023/09_22_1052_bfba43f6def2_.py diff --git a/src/dstack/_internal/server/migrations/versions/252d3743b641_.py b/src/dstack/_internal/server/migrations/versions/2023/09_25_1609_252d3743b641_.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/252d3743b641_.py rename to src/dstack/_internal/server/migrations/versions/2023/09_25_1609_252d3743b641_.py diff --git a/src/dstack/_internal/server/migrations/versions/fe72c4de8376_add_gateways.py b/src/dstack/_internal/server/migrations/versions/2023/09_27_1742_fe72c4de8376_add_gateways.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/fe72c4de8376_add_gateways.py rename to src/dstack/_internal/server/migrations/versions/2023/09_27_1742_fe72c4de8376_add_gateways.py diff --git a/src/dstack/_internal/server/migrations/versions/d0bb68e48b9f_add_project_owners_and_quotas.py b/src/dstack/_internal/server/migrations/versions/2023/11_01_1019_d0bb68e48b9f_add_project_owners_and_quotas.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/d0bb68e48b9f_add_project_owners_and_quotas.py rename to src/dstack/_internal/server/migrations/versions/2023/11_01_1019_d0bb68e48b9f_add_project_owners_and_quotas.py diff --git a/src/dstack/_internal/server/migrations/versions/112753bc17dd_remove_nullable_fields.py b/src/dstack/_internal/server/migrations/versions/2023/11_01_1135_112753bc17dd_remove_nullable_fields.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/112753bc17dd_remove_nullable_fields.py rename to src/dstack/_internal/server/migrations/versions/2023/11_01_1135_112753bc17dd_remove_nullable_fields.py diff --git a/src/dstack/_internal/server/migrations/versions/14f2cb002fc2_add_jobmodel_removed_flag.py b/src/dstack/_internal/server/migrations/versions/2023/11_03_1646_14f2cb002fc2_add_jobmodel_removed_flag.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/14f2cb002fc2_add_jobmodel_removed_flag.py rename to src/dstack/_internal/server/migrations/versions/2023/11_03_1646_14f2cb002fc2_add_jobmodel_removed_flag.py diff --git a/src/dstack/_internal/server/migrations/versions/23e01c56279a_make_blob_nullable.py b/src/dstack/_internal/server/migrations/versions/2023/11_06_1613_23e01c56279a_make_blob_nullable.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/23e01c56279a_make_blob_nullable.py rename to src/dstack/_internal/server/migrations/versions/2023/11_06_1613_23e01c56279a_make_blob_nullable.py diff --git a/src/dstack/_internal/server/migrations/versions/3dbdce90d0e0_fix_code_uq_constraint.py b/src/dstack/_internal/server/migrations/versions/2023/11_14_1041_3dbdce90d0e0_fix_code_uq_constraint.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/3dbdce90d0e0_fix_code_uq_constraint.py rename to src/dstack/_internal/server/migrations/versions/2023/11_14_1041_3dbdce90d0e0_fix_code_uq_constraint.py diff --git a/src/dstack/_internal/server/migrations/versions/686fb8341ea5_add_user_emails.py b/src/dstack/_internal/server/migrations/versions/2023/11_14_1609_686fb8341ea5_add_user_emails.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/686fb8341ea5_add_user_emails.py rename to src/dstack/_internal/server/migrations/versions/2023/11_14_1609_686fb8341ea5_add_user_emails.py diff --git a/src/dstack/_internal/server/migrations/versions/e6391ca6a264_separate_gateways_from_compute.py b/src/dstack/_internal/server/migrations/versions/2023/12_11_1034_e6391ca6a264_separate_gateways_from_compute.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/e6391ca6a264_separate_gateways_from_compute.py rename to src/dstack/_internal/server/migrations/versions/2023/12_11_1034_e6391ca6a264_separate_gateways_from_compute.py diff --git a/src/dstack/_internal/server/migrations/versions/48ad3ecbaea2_do_not_delete_projects_and_runs.py b/src/dstack/_internal/server/migrations/versions/2023/12_19_1555_48ad3ecbaea2_do_not_delete_projects_and_runs.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/48ad3ecbaea2_do_not_delete_projects_and_runs.py rename to src/dstack/_internal/server/migrations/versions/2023/12_19_1555_48ad3ecbaea2_do_not_delete_projects_and_runs.py diff --git a/src/dstack/_internal/server/migrations/versions/d3e8af4786fa_gateway_compute_flag_deleted.py b/src/dstack/_internal/server/migrations/versions/2024/01_09_1223_d3e8af4786fa_gateway_compute_flag_deleted.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/d3e8af4786fa_gateway_compute_flag_deleted.py rename to src/dstack/_internal/server/migrations/versions/2024/01_09_1223_d3e8af4786fa_gateway_compute_flag_deleted.py diff --git a/src/dstack/_internal/server/migrations/versions/27d3e55759fa_add_pools.py b/src/dstack/_internal/server/migrations/versions/2024/02_12_1427_27d3e55759fa_add_pools.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/27d3e55759fa_add_pools.py rename to src/dstack/_internal/server/migrations/versions/2024/02_12_1427_27d3e55759fa_add_pools.py diff --git a/src/dstack/_internal/server/migrations/versions/29c08c6a8cb3_.py b/src/dstack/_internal/server/migrations/versions/2024/02_14_1139_29c08c6a8cb3_.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/29c08c6a8cb3_.py rename to src/dstack/_internal/server/migrations/versions/2024/02_14_1139_29c08c6a8cb3_.py diff --git a/src/dstack/_internal/server/migrations/versions/9eea6af28e10_added_fail_reason_for_instancemodel.py b/src/dstack/_internal/server/migrations/versions/2024/02_19_1139_9eea6af28e10_added_fail_reason_for_instancemodel.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/9eea6af28e10_added_fail_reason_for_instancemodel.py rename to src/dstack/_internal/server/migrations/versions/2024/02_19_1139_9eea6af28e10_added_fail_reason_for_instancemodel.py diff --git a/src/dstack/_internal/server/migrations/versions/1a48dfe44a40_rework_termination_handling.py b/src/dstack/_internal/server/migrations/versions/2024/02_21_1011_1a48dfe44a40_rework_termination_handling.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/1a48dfe44a40_rework_termination_handling.py rename to src/dstack/_internal/server/migrations/versions/2024/02_21_1011_1a48dfe44a40_rework_termination_handling.py diff --git a/src/dstack/_internal/server/migrations/versions/ed0ca30e13bb_migrate_instancestatus_provisioning.py b/src/dstack/_internal/server/migrations/versions/2024/02_28_0547_ed0ca30e13bb_migrate_instancestatus_provisioning.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/ed0ca30e13bb_migrate_instancestatus_provisioning.py rename to src/dstack/_internal/server/migrations/versions/2024/02_28_0547_ed0ca30e13bb_migrate_instancestatus_provisioning.py diff --git a/src/dstack/_internal/server/migrations/versions/b88d55c2a07d_replace_instancestatus_ready.py b/src/dstack/_internal/server/migrations/versions/2024/02_28_0615_b88d55c2a07d_replace_instancestatus_ready.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/b88d55c2a07d_replace_instancestatus_ready.py rename to src/dstack/_internal/server/migrations/versions/2024/02_28_0615_b88d55c2a07d_replace_instancestatus_ready.py diff --git a/src/dstack/_internal/server/migrations/versions/4b4319398164_introduce_runs_processing.py b/src/dstack/_internal/server/migrations/versions/2024/03_01_1430_4b4319398164_introduce_runs_processing.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/4b4319398164_introduce_runs_processing.py rename to src/dstack/_internal/server/migrations/versions/2024/03_01_1430_4b4319398164_introduce_runs_processing.py diff --git a/src/dstack/_internal/server/migrations/versions/0e33559e16ed_update_instancestatus.py b/src/dstack/_internal/server/migrations/versions/2024/03_07_1721_0e33559e16ed_update_instancestatus.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/0e33559e16ed_update_instancestatus.py rename to src/dstack/_internal/server/migrations/versions/2024/03_07_1721_0e33559e16ed_update_instancestatus.py diff --git a/src/dstack/_internal/server/migrations/versions/555138b1f77f_change_instancemodel_for_asynchronous_.py b/src/dstack/_internal/server/migrations/versions/2024/03_12_1717_555138b1f77f_change_instancemodel_for_asynchronous_.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/555138b1f77f_change_instancemodel_for_asynchronous_.py rename to src/dstack/_internal/server/migrations/versions/2024/03_12_1717_555138b1f77f_change_instancemodel_for_asynchronous_.py diff --git a/src/dstack/_internal/server/migrations/versions/5ec538b70e71_replace_instansestatus.py b/src/dstack/_internal/server/migrations/versions/2024/03_13_1048_5ec538b70e71_replace_instansestatus.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/5ec538b70e71_replace_instansestatus.py rename to src/dstack/_internal/server/migrations/versions/2024/03_13_1048_5ec538b70e71_replace_instansestatus.py diff --git a/src/dstack/_internal/server/migrations/versions/4ae1a5b0e7f1_add_run_list_index.py b/src/dstack/_internal/server/migrations/versions/2024/03_18_1216_4ae1a5b0e7f1_add_run_list_index.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/4ae1a5b0e7f1_add_run_list_index.py rename to src/dstack/_internal/server/migrations/versions/2024/03_18_1216_4ae1a5b0e7f1_add_run_list_index.py diff --git a/src/dstack/_internal/server/migrations/versions/99b4c8c954ea_add_termination_reason_message.py b/src/dstack/_internal/server/migrations/versions/2024/03_29_0637_99b4c8c954ea_add_termination_reason_message.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/99b4c8c954ea_add_termination_reason_message.py rename to src/dstack/_internal/server/migrations/versions/2024/03_29_0637_99b4c8c954ea_add_termination_reason_message.py diff --git a/src/dstack/_internal/server/migrations/versions/866ec1d67184_replace_retrypolicy_limit_with_.py b/src/dstack/_internal/server/migrations/versions/2024/04_02_0142_866ec1d67184_replace_retrypolicy_limit_with_.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/866ec1d67184_replace_retrypolicy_limit_with_.py rename to src/dstack/_internal/server/migrations/versions/2024/04_02_0142_866ec1d67184_replace_retrypolicy_limit_with_.py diff --git a/src/dstack/_internal/server/migrations/versions/1e3fb39ef74b_add_remote_connection_details.py b/src/dstack/_internal/server/migrations/versions/2024/04_08_0802_1e3fb39ef74b_add_remote_connection_details.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/1e3fb39ef74b_add_remote_connection_details.py rename to src/dstack/_internal/server/migrations/versions/2024/04_08_0802_1e3fb39ef74b_add_remote_connection_details.py diff --git a/src/dstack/_internal/server/migrations/versions/58aa5162dcc3_add_gatewaymodel_configuration.py b/src/dstack/_internal/server/migrations/versions/2024/05_15_1104_58aa5162dcc3_add_gatewaymodel_configuration.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/58aa5162dcc3_add_gatewaymodel_configuration.py rename to src/dstack/_internal/server/migrations/versions/2024/05_15_1104_58aa5162dcc3_add_gatewaymodel_configuration.py diff --git a/src/dstack/_internal/server/migrations/versions/c154eece89da_add_fields_for_async_gateway_creation.py b/src/dstack/_internal/server/migrations/versions/2024/05_16_1418_c154eece89da_add_fields_for_async_gateway_creation.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/c154eece89da_add_fields_for_async_gateway_creation.py rename to src/dstack/_internal/server/migrations/versions/2024/05_16_1418_c154eece89da_add_fields_for_async_gateway_creation.py diff --git a/src/dstack/_internal/server/migrations/versions/dfffd6a1165c_add_fields_for_gateways_behind_alb.py b/src/dstack/_internal/server/migrations/versions/2024/05_22_1338_dfffd6a1165c_add_fields_for_gateways_behind_alb.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/dfffd6a1165c_add_fields_for_gateways_behind_alb.py rename to src/dstack/_internal/server/migrations/versions/2024/05_22_1338_dfffd6a1165c_add_fields_for_gateways_behind_alb.py diff --git a/src/dstack/_internal/server/migrations/versions/29826f417010_remove_instancemodel_retry_policy.py b/src/dstack/_internal/server/migrations/versions/2024/05_29_1040_29826f417010_remove_instancemodel_retry_policy.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/29826f417010_remove_instancemodel_retry_policy.py rename to src/dstack/_internal/server/migrations/versions/2024/05_29_1040_29826f417010_remove_instancemodel_retry_policy.py diff --git a/src/dstack/_internal/server/migrations/versions/b4d6ad60db08_add_instancemodel_unreachable.py b/src/dstack/_internal/server/migrations/versions/2024/05_30_0955_b4d6ad60db08_add_instancemodel_unreachable.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/b4d6ad60db08_add_instancemodel_unreachable.py rename to src/dstack/_internal/server/migrations/versions/2024/05_30_0955_b4d6ad60db08_add_instancemodel_unreachable.py diff --git a/src/dstack/_internal/server/migrations/versions/98cd9c8b5927_add_volumemodel.py b/src/dstack/_internal/server/migrations/versions/2024/06_26_1122_98cd9c8b5927_add_volumemodel.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/98cd9c8b5927_add_volumemodel.py rename to src/dstack/_internal/server/migrations/versions/2024/06_26_1122_98cd9c8b5927_add_volumemodel.py diff --git a/src/dstack/_internal/server/migrations/versions/5ad8debc8fe6_fixes_for_psql.py b/src/dstack/_internal/server/migrations/versions/2024/07_04_1726_5ad8debc8fe6_fixes_for_psql.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/5ad8debc8fe6_fixes_for_psql.py rename to src/dstack/_internal/server/migrations/versions/2024/07_04_1726_5ad8debc8fe6_fixes_for_psql.py diff --git a/src/dstack/_internal/server/migrations/versions/91ac5e543037_extend_repos_creds_column.py b/src/dstack/_internal/server/migrations/versions/2024/07_14_2143_91ac5e543037_extend_repos_creds_column.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/91ac5e543037_extend_repos_creds_column.py rename to src/dstack/_internal/server/migrations/versions/2024/07_14_2143_91ac5e543037_extend_repos_creds_column.py diff --git a/src/dstack/_internal/server/migrations/versions/3cf77fb8bcf1_store_repo_clone_url.py b/src/dstack/_internal/server/migrations/versions/2024/07_15_2309_3cf77fb8bcf1_store_repo_clone_url.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/3cf77fb8bcf1_store_repo_clone_url.py rename to src/dstack/_internal/server/migrations/versions/2024/07_15_2309_3cf77fb8bcf1_store_repo_clone_url.py diff --git a/src/dstack/_internal/server/migrations/versions/c00090eaef21_support_fleets.py b/src/dstack/_internal/server/migrations/versions/2024/07_17_1543_c00090eaef21_support_fleets.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/c00090eaef21_support_fleets.py rename to src/dstack/_internal/server/migrations/versions/2024/07_17_1543_c00090eaef21_support_fleets.py diff --git a/src/dstack/_internal/server/migrations/versions/710e5b3fac8f_add_encryption.py b/src/dstack/_internal/server/migrations/versions/2024/08_15_1024_710e5b3fac8f_add_encryption.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/710e5b3fac8f_add_encryption.py rename to src/dstack/_internal/server/migrations/versions/2024/08_15_1024_710e5b3fac8f_add_encryption.py diff --git a/src/dstack/_internal/server/migrations/versions/54a77e19c64c_add_manager_project_role.py b/src/dstack/_internal/server/migrations/versions/2024/08_16_1425_54a77e19c64c_add_manager_project_role.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/54a77e19c64c_add_manager_project_role.py rename to src/dstack/_internal/server/migrations/versions/2024/08_16_1425_54a77e19c64c_add_manager_project_role.py diff --git a/src/dstack/_internal/server/migrations/versions/d6b11105f659_add_usermodel_active.py b/src/dstack/_internal/server/migrations/versions/2024/08_19_1510_d6b11105f659_add_usermodel_active.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/d6b11105f659_add_usermodel_active.py rename to src/dstack/_internal/server/migrations/versions/2024/08_19_1510_d6b11105f659_add_usermodel_active.py diff --git a/src/dstack/_internal/server/migrations/versions/ea60480f82bb_add_membermodel_member_num.py b/src/dstack/_internal/server/migrations/versions/2024/08_21_1420_ea60480f82bb_add_membermodel_member_num.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/ea60480f82bb_add_membermodel_member_num.py rename to src/dstack/_internal/server/migrations/versions/2024/08_21_1420_ea60480f82bb_add_membermodel_member_num.py diff --git a/src/dstack/_internal/server/migrations/versions/7b24b1c8eba7_add_instancemodel_last_processed_at.py b/src/dstack/_internal/server/migrations/versions/2024/08_30_1342_7b24b1c8eba7_add_instancemodel_last_processed_at.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/7b24b1c8eba7_add_instancemodel_last_processed_at.py rename to src/dstack/_internal/server/migrations/versions/2024/08_30_1342_7b24b1c8eba7_add_instancemodel_last_processed_at.py diff --git a/src/dstack/_internal/server/migrations/versions/c83d45f9a971_replace_string_with_text.py b/src/dstack/_internal/server/migrations/versions/2024/09_10_1107_c83d45f9a971_replace_string_with_text.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/c83d45f9a971_replace_string_with_text.py rename to src/dstack/_internal/server/migrations/versions/2024/09_10_1107_c83d45f9a971_replace_string_with_text.py diff --git a/src/dstack/_internal/server/migrations/versions/e3b7db07727f_add_gatewaycomputemodel_app_updated_at.py b/src/dstack/_internal/server/migrations/versions/2024/09_17_1223_e3b7db07727f_add_gatewaycomputemodel_app_updated_at.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/e3b7db07727f_add_gatewaycomputemodel_app_updated_at.py rename to src/dstack/_internal/server/migrations/versions/2024/09_17_1223_e3b7db07727f_add_gatewaycomputemodel_app_updated_at.py diff --git a/src/dstack/_internal/server/migrations/versions/a7b46c073fa1_add_placementgroupmodel.py b/src/dstack/_internal/server/migrations/versions/2024/09_25_1352_a7b46c073fa1_add_placementgroupmodel.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/a7b46c073fa1_add_placementgroupmodel.py rename to src/dstack/_internal/server/migrations/versions/2024/09_25_1352_a7b46c073fa1_add_placementgroupmodel.py diff --git a/src/dstack/_internal/server/migrations/versions/c20626d03cfb_add_jobmetricspoint.py b/src/dstack/_internal/server/migrations/versions/2024/10_14_1126_c20626d03cfb_add_jobmetricspoint.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/c20626d03cfb_add_jobmetricspoint.py rename to src/dstack/_internal/server/migrations/versions/2024/10_14_1126_c20626d03cfb_add_jobmetricspoint.py diff --git a/src/dstack/_internal/server/migrations/versions/afbc600ff2b2_add_created_at_to_usermodel_and_.py b/src/dstack/_internal/server/migrations/versions/2024/10_16_1431_afbc600ff2b2_add_created_at_to_usermodel_and_.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/afbc600ff2b2_add_created_at_to_usermodel_and_.py rename to src/dstack/_internal/server/migrations/versions/2024/10_16_1431_afbc600ff2b2_add_created_at_to_usermodel_and_.py diff --git a/src/dstack/_internal/server/migrations/versions/82b32a135ea2_.py b/src/dstack/_internal/server/migrations/versions/2024/11_04_1546_82b32a135ea2_.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/82b32a135ea2_.py rename to src/dstack/_internal/server/migrations/versions/2024/11_04_1546_82b32a135ea2_.py diff --git a/src/dstack/_internal/server/migrations/versions/91a12fff6c76_add_repocredsmodel.py b/src/dstack/_internal/server/migrations/versions/2024/11_14_1031_91a12fff6c76_add_repocredsmodel.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/91a12fff6c76_add_repocredsmodel.py rename to src/dstack/_internal/server/migrations/versions/2024/11_14_1031_91a12fff6c76_add_repocredsmodel.py diff --git a/src/dstack/_internal/server/migrations/versions/065588ec72b8_add_vultr_to_backendtype_enum.py b/src/dstack/_internal/server/migrations/versions/2024/12_24_1256_065588ec72b8_add_vultr_to_backendtype_enum.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/065588ec72b8_add_vultr_to_backendtype_enum.py rename to src/dstack/_internal/server/migrations/versions/2024/12_24_1256_065588ec72b8_add_vultr_to_backendtype_enum.py diff --git a/src/dstack/_internal/server/migrations/versions/803c7e9ed85d_add_jobmodel_job_runtime_data.py b/src/dstack/_internal/server/migrations/versions/2025/01_10_1417_803c7e9ed85d_add_jobmodel_job_runtime_data.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/803c7e9ed85d_add_jobmodel_job_runtime_data.py rename to src/dstack/_internal/server/migrations/versions/2025/01_10_1417_803c7e9ed85d_add_jobmodel_job_runtime_data.py diff --git a/src/dstack/_internal/server/migrations/versions/c48df7985d57_add_instance_termination_retries.py b/src/dstack/_internal/server/migrations/versions/2025/01_14_1333_c48df7985d57_add_instance_termination_retries.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/c48df7985d57_add_instance_termination_retries.py rename to src/dstack/_internal/server/migrations/versions/2025/01_14_1333_c48df7985d57_add_instance_termination_retries.py diff --git a/src/dstack/_internal/server/migrations/versions/1338b788b612_reverse_job_instance_relationship.py b/src/dstack/_internal/server/migrations/versions/2025/01_16_1459_1338b788b612_reverse_job_instance_relationship.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/1338b788b612_reverse_job_instance_relationship.py rename to src/dstack/_internal/server/migrations/versions/2025/01_16_1459_1338b788b612_reverse_job_instance_relationship.py diff --git a/src/dstack/_internal/server/migrations/versions/ffa99edd1988_add_jobterminationreason_max_duration_.py b/src/dstack/_internal/server/migrations/versions/2025/01_21_1053_ffa99edd1988_add_jobterminationreason_max_duration_.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/ffa99edd1988_add_jobterminationreason_max_duration_.py rename to src/dstack/_internal/server/migrations/versions/2025/01_21_1053_ffa99edd1988_add_jobterminationreason_max_duration_.py diff --git a/src/dstack/_internal/server/migrations/versions/da574e93fee0_add_jobmodel_volumes_detached_at.py b/src/dstack/_internal/server/migrations/versions/2025/01_29_1152_da574e93fee0_add_jobmodel_volumes_detached_at.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/da574e93fee0_add_jobmodel_volumes_detached_at.py rename to src/dstack/_internal/server/migrations/versions/2025/01_29_1152_da574e93fee0_add_jobmodel_volumes_detached_at.py diff --git a/src/dstack/_internal/server/migrations/versions/51d45659d574_add_instancemodel_blocks_fields.py b/src/dstack/_internal/server/migrations/versions/2025/02_04_1110_51d45659d574_add_instancemodel_blocks_fields.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/51d45659d574_add_instancemodel_blocks_fields.py rename to src/dstack/_internal/server/migrations/versions/2025/02_04_1110_51d45659d574_add_instancemodel_blocks_fields.py diff --git a/src/dstack/_internal/server/migrations/versions/63c3f19cb184_add_jobterminationreason_inactivity_.py b/src/dstack/_internal/server/migrations/versions/2025/02_11_2230_63c3f19cb184_add_jobterminationreason_inactivity_.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/63c3f19cb184_add_jobterminationreason_inactivity_.py rename to src/dstack/_internal/server/migrations/versions/2025/02_11_2230_63c3f19cb184_add_jobterminationreason_inactivity_.py diff --git a/src/dstack/_internal/server/migrations/versions/1e76fb0dde87_add_jobmodel_inactivity_secs.py b/src/dstack/_internal/server/migrations/versions/2025/02_11_2337_1e76fb0dde87_add_jobmodel_inactivity_secs.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/1e76fb0dde87_add_jobmodel_inactivity_secs.py rename to src/dstack/_internal/server/migrations/versions/2025/02_11_2337_1e76fb0dde87_add_jobmodel_inactivity_secs.py diff --git a/src/dstack/_internal/server/migrations/versions/a751ef183f27_move_attachment_data_to_volumes_.py b/src/dstack/_internal/server/migrations/versions/2025/02_12_1319_a751ef183f27_move_attachment_data_to_volumes_.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/a751ef183f27_move_attachment_data_to_volumes_.py rename to src/dstack/_internal/server/migrations/versions/2025/02_12_1319_a751ef183f27_move_attachment_data_to_volumes_.py diff --git a/src/dstack/_internal/server/migrations/versions/60e444118b6d_add_jobprometheusmetrics.py b/src/dstack/_internal/server/migrations/versions/2025/02_21_1059_60e444118b6d_add_jobprometheusmetrics.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/60e444118b6d_add_jobprometheusmetrics.py rename to src/dstack/_internal/server/migrations/versions/2025/02_21_1059_60e444118b6d_add_jobprometheusmetrics.py diff --git a/src/dstack/_internal/server/migrations/versions/98d1b92988bc_add_jobterminationreason_terminated_due_.py b/src/dstack/_internal/server/migrations/versions/2025/02_28_1512_98d1b92988bc_add_jobterminationreason_terminated_due_.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/98d1b92988bc_add_jobterminationreason_terminated_due_.py rename to src/dstack/_internal/server/migrations/versions/2025/02_28_1512_98d1b92988bc_add_jobterminationreason_terminated_due_.py diff --git a/src/dstack/_internal/server/migrations/versions/bc8ca4a505c6_store_backendtype_as_string.py b/src/dstack/_internal/server/migrations/versions/2025/03_10_1449_bc8ca4a505c6_store_backendtype_as_string.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/bc8ca4a505c6_store_backendtype_as_string.py rename to src/dstack/_internal/server/migrations/versions/2025/03_10_1449_bc8ca4a505c6_store_backendtype_as_string.py diff --git a/src/dstack/_internal/server/migrations/versions/7bc2586e8b9e_make_instancemodel_pool_id_optional.py b/src/dstack/_internal/server/migrations/versions/2025/03_13_1113_7bc2586e8b9e_make_instancemodel_pool_id_optional.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/7bc2586e8b9e_make_instancemodel_pool_id_optional.py rename to src/dstack/_internal/server/migrations/versions/2025/03_13_1113_7bc2586e8b9e_make_instancemodel_pool_id_optional.py diff --git a/src/dstack/_internal/server/migrations/versions/7ba3b59d7ca6_add_runmodel_resubmission_attempt.py b/src/dstack/_internal/server/migrations/versions/2025/04_15_1800_7ba3b59d7ca6_add_runmodel_resubmission_attempt.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/7ba3b59d7ca6_add_runmodel_resubmission_attempt.py rename to src/dstack/_internal/server/migrations/versions/2025/04_15_1800_7ba3b59d7ca6_add_runmodel_resubmission_attempt.py diff --git a/src/dstack/_internal/server/migrations/versions/6c1a9d6530ee_add_jobmodel_exit_status.py b/src/dstack/_internal/server/migrations/versions/2025/05_09_1025_6c1a9d6530ee_add_jobmodel_exit_status.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/6c1a9d6530ee_add_jobmodel_exit_status.py rename to src/dstack/_internal/server/migrations/versions/2025/05_09_1025_6c1a9d6530ee_add_jobmodel_exit_status.py diff --git a/src/dstack/_internal/server/migrations/versions/20166748b60c_add_jobmodel_disconnected_at.py b/src/dstack/_internal/server/migrations/versions/2025/05_13_1624_20166748b60c_add_jobmodel_disconnected_at.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/20166748b60c_add_jobmodel_disconnected_at.py rename to src/dstack/_internal/server/migrations/versions/2025/05_13_1624_20166748b60c_add_jobmodel_disconnected_at.py diff --git a/src/dstack/_internal/server/migrations/versions/bca2fdf130bf_add_runmodel_priority.py b/src/dstack/_internal/server/migrations/versions/2025/05_14_1524_bca2fdf130bf_add_runmodel_priority.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/bca2fdf130bf_add_runmodel_priority.py rename to src/dstack/_internal/server/migrations/versions/2025/05_14_1524_bca2fdf130bf_add_runmodel_priority.py diff --git a/src/dstack/_internal/server/migrations/versions/35e90e1b0d3e_add_rolling_deployment_fields.py b/src/dstack/_internal/server/migrations/versions/2025/05_29_1530_35e90e1b0d3e_add_rolling_deployment_fields.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/35e90e1b0d3e_add_rolling_deployment_fields.py rename to src/dstack/_internal/server/migrations/versions/2025/05_29_1530_35e90e1b0d3e_add_rolling_deployment_fields.py diff --git a/src/dstack/_internal/server/migrations/versions/35f732ee4cf5_add_projectmodel_is_public.py b/src/dstack/_internal/server/migrations/versions/2025/06_06_1304_35f732ee4cf5_add_projectmodel_is_public.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/35f732ee4cf5_add_projectmodel_is_public.py rename to src/dstack/_internal/server/migrations/versions/2025/06_06_1304_35f732ee4cf5_add_projectmodel_is_public.py diff --git a/src/dstack/_internal/server/migrations/versions/5f1707c525d2_add_filearchivemodel.py b/src/dstack/_internal/server/migrations/versions/2025/06_12_1228_5f1707c525d2_add_filearchivemodel.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/5f1707c525d2_add_filearchivemodel.py rename to src/dstack/_internal/server/migrations/versions/2025/06_12_1228_5f1707c525d2_add_filearchivemodel.py diff --git a/src/dstack/_internal/server/migrations/versions/644b8a114187_add_secretmodel.py b/src/dstack/_internal/server/migrations/versions/2025/06_30_1100_644b8a114187_add_secretmodel.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/644b8a114187_add_secretmodel.py rename to src/dstack/_internal/server/migrations/versions/2025/06_30_1100_644b8a114187_add_secretmodel.py diff --git a/src/dstack/_internal/server/migrations/versions/d5863798bf41_add_volumemodel_last_job_processed_at.py b/src/dstack/_internal/server/migrations/versions/2025/07_15_1426_d5863798bf41_add_volumemodel_last_job_processed_at.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/d5863798bf41_add_volumemodel_last_job_processed_at.py rename to src/dstack/_internal/server/migrations/versions/2025/07_15_1426_d5863798bf41_add_volumemodel_last_job_processed_at.py diff --git a/src/dstack/_internal/server/migrations/versions/ec02a26a256c_add_runmodel_next_triggered_at.py b/src/dstack/_internal/server/migrations/versions/2025/07_17_1547_ec02a26a256c_add_runmodel_next_triggered_at.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/ec02a26a256c_add_runmodel_next_triggered_at.py rename to src/dstack/_internal/server/migrations/versions/2025/07_17_1547_ec02a26a256c_add_runmodel_next_triggered_at.py diff --git a/src/dstack/_internal/server/migrations/versions/50dd7ea98639_index_status_columns.py b/src/dstack/_internal/server/migrations/versions/2025/07_25_1036_50dd7ea98639_index_status_columns.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/50dd7ea98639_index_status_columns.py rename to src/dstack/_internal/server/migrations/versions/2025/07_25_1036_50dd7ea98639_index_status_columns.py diff --git a/src/dstack/_internal/server/migrations/versions/728b1488b1b4_add_instance_health.py b/src/dstack/_internal/server/migrations/versions/2025/08_01_1456_728b1488b1b4_add_instance_health.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/728b1488b1b4_add_instance_health.py rename to src/dstack/_internal/server/migrations/versions/2025/08_01_1456_728b1488b1b4_add_instance_health.py diff --git a/src/dstack/_internal/server/migrations/versions/25479f540245_add_probes.py b/src/dstack/_internal/server/migrations/versions/2025/08_03_1951_25479f540245_add_probes.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/25479f540245_add_probes.py rename to src/dstack/_internal/server/migrations/versions/2025/08_03_1951_25479f540245_add_probes.py diff --git a/src/dstack/_internal/server/migrations/versions/74a1f55209bd_store_enums_as_strings.py b/src/dstack/_internal/server/migrations/versions/2025/08_06_1349_74a1f55209bd_store_enums_as_strings.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/74a1f55209bd_store_enums_as_strings.py rename to src/dstack/_internal/server/migrations/versions/2025/08_06_1349_74a1f55209bd_store_enums_as_strings.py diff --git a/src/dstack/_internal/server/migrations/versions/3d7f6c2ec000_add_jobmodel_registered.py b/src/dstack/_internal/server/migrations/versions/2025/08_11_1323_3d7f6c2ec000_add_jobmodel_registered.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/3d7f6c2ec000_add_jobmodel_registered.py rename to src/dstack/_internal/server/migrations/versions/2025/08_11_1323_3d7f6c2ec000_add_jobmodel_registered.py diff --git a/src/dstack/_internal/server/migrations/versions/e2d08cd1b8d9_add_jobmodel_fleet.py b/src/dstack/_internal/server/migrations/versions/2025/08_15_1126_e2d08cd1b8d9_add_jobmodel_fleet.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/e2d08cd1b8d9_add_jobmodel_fleet.py rename to src/dstack/_internal/server/migrations/versions/2025/08_15_1126_e2d08cd1b8d9_add_jobmodel_fleet.py diff --git a/src/dstack/_internal/server/migrations/versions/2498ab323443_add_fleetmodel_consolidation_attempt_.py b/src/dstack/_internal/server/migrations/versions/2025/08_29_1608_2498ab323443_add_fleetmodel_consolidation_attempt_.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/2498ab323443_add_fleetmodel_consolidation_attempt_.py rename to src/dstack/_internal/server/migrations/versions/2025/08_29_1608_2498ab323443_add_fleetmodel_consolidation_attempt_.py diff --git a/src/dstack/_internal/server/migrations/versions/ff1d94f65b08_user_ssh_key.py b/src/dstack/_internal/server/migrations/versions/2025/10_09_2031_ff1d94f65b08_user_ssh_key.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/ff1d94f65b08_user_ssh_key.py rename to src/dstack/_internal/server/migrations/versions/2025/10_09_2031_ff1d94f65b08_user_ssh_key.py diff --git a/src/dstack/_internal/server/migrations/versions/7d1ec2b920ac_add_computegroupmodel.py b/src/dstack/_internal/server/migrations/versions/2025/10_21_1601_7d1ec2b920ac_add_computegroupmodel.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/7d1ec2b920ac_add_computegroupmodel.py rename to src/dstack/_internal/server/migrations/versions/2025/10_21_1601_7d1ec2b920ac_add_computegroupmodel.py diff --git a/src/dstack/_internal/server/migrations/versions/06e977bc61c7_add_usermodel_deleted_and_original_name.py b/src/dstack/_internal/server/migrations/versions/2025/11_26_1143_06e977bc61c7_add_usermodel_deleted_and_original_name.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/06e977bc61c7_add_usermodel_deleted_and_original_name.py rename to src/dstack/_internal/server/migrations/versions/2025/11_26_1143_06e977bc61c7_add_usermodel_deleted_and_original_name.py diff --git a/src/dstack/_internal/server/migrations/versions/006512f572b4_add_projects_original_name.py b/src/dstack/_internal/server/migrations/versions/2025/11_27_1511_006512f572b4_add_projects_original_name.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/006512f572b4_add_projects_original_name.py rename to src/dstack/_internal/server/migrations/versions/2025/11_27_1511_006512f572b4_add_projects_original_name.py diff --git a/src/dstack/_internal/server/migrations/versions/d4d9dc26cf58_add_ix_jobs_run_id.py b/src/dstack/_internal/server/migrations/versions/2025/12_04_2048_d4d9dc26cf58_add_ix_jobs_run_id.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/d4d9dc26cf58_add_ix_jobs_run_id.py rename to src/dstack/_internal/server/migrations/versions/2025/12_04_2048_d4d9dc26cf58_add_ix_jobs_run_id.py diff --git a/src/dstack/_internal/server/migrations/versions/5fd659afca82_add_ix_instances_fleet_id.py b/src/dstack/_internal/server/migrations/versions/2025/12_04_2052_5fd659afca82_add_ix_instances_fleet_id.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/5fd659afca82_add_ix_instances_fleet_id.py rename to src/dstack/_internal/server/migrations/versions/2025/12_04_2052_5fd659afca82_add_ix_instances_fleet_id.py diff --git a/src/dstack/_internal/server/migrations/versions/22d74df9897e_add_events_and_event_targets.py b/src/dstack/_internal/server/migrations/versions/2025/12_04_2056_22d74df9897e_add_events_and_event_targets.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/22d74df9897e_add_events_and_event_targets.py rename to src/dstack/_internal/server/migrations/versions/2025/12_04_2056_22d74df9897e_add_events_and_event_targets.py diff --git a/src/dstack/_internal/server/migrations/versions/706e0acc3a7d_add_runmodel_desired_replica_counts.py b/src/dstack/_internal/server/migrations/versions/2025/12_18_1054_706e0acc3a7d_add_runmodel_desired_replica_counts.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/706e0acc3a7d_add_runmodel_desired_replica_counts.py rename to src/dstack/_internal/server/migrations/versions/2025/12_18_1054_706e0acc3a7d_add_runmodel_desired_replica_counts.py diff --git a/src/dstack/_internal/server/migrations/versions/1aa9638ad963_added_email_index.py b/src/dstack/_internal/server/migrations/versions/2025/12_21_2208_1aa9638ad963_added_email_index.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/1aa9638ad963_added_email_index.py rename to src/dstack/_internal/server/migrations/versions/2025/12_21_2208_1aa9638ad963_added_email_index.py diff --git a/src/dstack/_internal/server/migrations/versions/903c91e24634_add_instances_termination_reason_message.py b/src/dstack/_internal/server/migrations/versions/2025/12_22_1217_903c91e24634_add_instances_termination_reason_message.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/903c91e24634_add_instances_termination_reason_message.py rename to src/dstack/_internal/server/migrations/versions/2025/12_22_1217_903c91e24634_add_instances_termination_reason_message.py diff --git a/src/dstack/_internal/server/migrations/versions/57cff3ec86ce_add_computegroupmodel_pipeline_columns.py b/src/dstack/_internal/server/migrations/versions/2026/02_18_1107_57cff3ec86ce_add_computegroupmodel_pipeline_columns.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/57cff3ec86ce_add_computegroupmodel_pipeline_columns.py rename to src/dstack/_internal/server/migrations/versions/2026/02_18_1107_57cff3ec86ce_add_computegroupmodel_pipeline_columns.py diff --git a/src/dstack/_internal/server/migrations/versions/9c2a227b0154_add_placementgroupmodel_pipeline_columns.py b/src/dstack/_internal/server/migrations/versions/2026/02_18_1108_9c2a227b0154_add_placementgroupmodel_pipeline_columns.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/9c2a227b0154_add_placementgroupmodel_pipeline_columns.py rename to src/dstack/_internal/server/migrations/versions/2026/02_18_1108_9c2a227b0154_add_placementgroupmodel_pipeline_columns.py diff --git a/src/dstack/_internal/server/migrations/versions/a8ed24fd7f90_add_pipeline_indexes_for_compute_and_.py b/src/dstack/_internal/server/migrations/versions/2026/02_18_1122_a8ed24fd7f90_add_pipeline_indexes_for_compute_and_.py similarity index 100% rename from src/dstack/_internal/server/migrations/versions/a8ed24fd7f90_add_pipeline_indexes_for_compute_and_.py rename to src/dstack/_internal/server/migrations/versions/2026/02_18_1122_a8ed24fd7f90_add_pipeline_indexes_for_compute_and_.py