db_createfrom: Don't exec pre-/post-migration scripts

This commit is contained in:
2026-06-11 19:29:19 -04:00
parent 13ce72f9e5
commit f2aa8d5c15
3 changed files with 51 additions and 3 deletions
+49 -1
View File
@@ -104,8 +104,56 @@ function(cppbessot_db_action_collect_nonempty_sql_files out_var sql_dir)
set(${out_var} "${_sql_files}" PARENT_SCOPE)
endfunction()
function(cppbessot_db_action_is_migration_sql_file out_var sql_file)
get_filename_component(_filename "${sql_file}" NAME)
if("${_filename}" MATCHES "-[0-9]+-(pre|post)\\.sql$")
set(${out_var} TRUE PARENT_SCOPE)
return()
endif()
set(${out_var} FALSE PARENT_SCOPE)
endfunction()
function(cppbessot_db_action_collect_schema_sql_files out_var sql_dir)
cppbessot_db_action_collect_nonempty_sql_files(_candidate_files "${sql_dir}")
set(_sql_files)
foreach(_candidate IN LISTS _candidate_files)
cppbessot_db_action_is_migration_sql_file(_is_migration_sql "${_candidate}")
if(NOT _is_migration_sql)
list(APPEND _sql_files "${_candidate}")
endif()
endforeach()
set(${out_var} "${_sql_files}" PARENT_SCOPE)
endfunction()
function(cppbessot_db_action_migration_sort_key out_var sql_file)
get_filename_component(_filename "${sql_file}" NAME)
string(REGEX REPLACE "-([0-9]+)-pre\\.sql$" "-\\1-0-pre.sql" _sort_key "${_filename}")
string(REGEX REPLACE "-([0-9]+)-post\\.sql$" "-\\1-1-post.sql" _sort_key "${_sort_key}")
set(${out_var} "${_sort_key}" PARENT_SCOPE)
endfunction()
function(cppbessot_db_action_collect_migration_sql_files out_var sql_dir)
cppbessot_db_action_collect_nonempty_sql_files(_candidate_files "${sql_dir}")
set(_keyed_files)
foreach(_candidate IN LISTS _candidate_files)
cppbessot_db_action_is_migration_sql_file(_is_migration_sql "${_candidate}")
if(_is_migration_sql)
cppbessot_db_action_migration_sort_key(_sort_key "${_candidate}")
list(APPEND _keyed_files "${_sort_key}|${_candidate}")
endif()
endforeach()
list(SORT _keyed_files)
set(_sql_files)
foreach(_keyed_file IN LISTS _keyed_files)
string(REGEX REPLACE "^[^|]+\\|" "" _sql_file "${_keyed_file}")
list(APPEND _sql_files "${_sql_file}")
endforeach()
set(${out_var} "${_sql_files}" PARENT_SCOPE)
endfunction()
function(cppbessot_db_action_require_nonempty_sql_dir sql_dir failure_prefix)
cppbessot_db_action_collect_nonempty_sql_files(_sql_files "${sql_dir}")
cppbessot_db_action_collect_schema_sql_files(_sql_files "${sql_dir}")
if(NOT _sql_files)
message(FATAL_ERROR "${failure_prefix}: no non-empty SQL files found under ${sql_dir}")
endif()