[IMP] reorganize project directory structure
Restructure the project for better organization and maintainability:
New structure:
./upgrade.sh - Main entry point (unchanged)
./lib/common.sh - Shared bash functions
./lib/python/ - Python utility scripts
./scripts/ - Workflow scripts (prepare_db, finalize_db)
./config/ - Configuration files (compose.yml)
./versions/{13..18}.0/ - Version-specific migration scripts
File renames:
- pre_migration_view_checking.py -> lib/python/check_views.py
- post_migration_fix_duplicated_views.py -> lib/python/fix_duplicated_views.py
- post_migration_cleanup_obsolete_modules.py -> lib/python/cleanup_modules.py
Benefits:
- Single entry point visible at root level
- Clear separation between shared code, scripts, and config
- Shorter, cleaner Python script names (context given by caller)
- Easier navigation and maintenance
This commit is contained in:
57
versions/17.0/pre_upgrade.sh
Executable file
57
versions/17.0/pre_upgrade.sh
Executable file
@@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
echo "Prepare migration to 17.0..."
|
||||
|
||||
# Copy database
|
||||
copy_database ou16 ou17 ou17 || exit 1
|
||||
|
||||
# Execute SQL pre-migration commands
|
||||
PRE_MIGRATE_SQL=$(cat <<'EOF'
|
||||
DO $$
|
||||
DECLARE
|
||||
plan_id INTEGER;
|
||||
BEGIN
|
||||
-- Check if the 'Projects' analytic plan exists
|
||||
SELECT id INTO plan_id FROM account_analytic_plan WHERE name = 'Projects' LIMIT 1;
|
||||
|
||||
-- If it doesn't exist, create it
|
||||
IF plan_id IS NULL THEN
|
||||
INSERT INTO account_analytic_plan (name, complete_name, default_applicability, create_date, write_date)
|
||||
VALUES ('Projects', 'migration_PROJECTS', 'optional', now(), now())
|
||||
RETURNING id INTO plan_id;
|
||||
END IF;
|
||||
|
||||
-- Delete existing system parameter (if any)
|
||||
DELETE FROM ir_config_parameter WHERE key = 'analytic.project_plan';
|
||||
|
||||
-- Insert the system parameter with the correct plan ID
|
||||
INSERT INTO ir_config_parameter (key, value, create_date, write_date)
|
||||
VALUES ('analytic.project_plan', plan_id::text, now(), now());
|
||||
END $$;
|
||||
EOF
|
||||
)
|
||||
echo "SQL command = $PRE_MIGRATE_SQL"
|
||||
query_postgres_container "$PRE_MIGRATE_SQL" ou17 || exit 1
|
||||
|
||||
PRE_MIGRATE_SQL_2=$(cat <<'EOF'
|
||||
DELETE FROM ir_model_fields WHERE name = 'kanban_state_label';
|
||||
EOF
|
||||
)
|
||||
echo "SQL command = $PRE_MIGRATE_SQL_2"
|
||||
query_postgres_container "$PRE_MIGRATE_SQL_2" ou17 || exit 1
|
||||
|
||||
PRE_MIGRATE_SQL_3=$(cat <<'EOF'
|
||||
DELETE FROM ir_model_fields WHERE name = 'phone' AND model='hr.employee';
|
||||
DELETE FROM ir_model_fields WHERE name = 'hr_responsible_id' AND model='hr.job';
|
||||
DELETE FROM ir_model_fields WHERE name = 'address_home_id' AND model='hr.employee';
|
||||
DELETE FROM ir_model_fields WHERE name = 'manager_id' AND model='project.task';
|
||||
EOF
|
||||
)
|
||||
echo "SQL command = $PRE_MIGRATE_SQL_3"
|
||||
query_postgres_container "$PRE_MIGRATE_SQL_3" ou17 || exit 1
|
||||
|
||||
# Copy filestores
|
||||
copy_filestore ou16 ou16 ou17 ou17 || exit 1
|
||||
|
||||
echo "Ready for migration to 17.0!"
|
||||
Reference in New Issue
Block a user