mirror of
https://github.com/latentPrion/cppbessot.git
synced 2026-06-23 23:28:36 +00:00
db_createfrom: Don't exec pre-/post-migration scripts
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user