Add explicit migration breakpoints (#33089)
This commit is contained in:
		
							
								
								
									
										6
									
								
								.github/workflows/test-migrations.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/test-migrations.yml
									
									
									
									
										vendored
									
									
								
							@@ -12,6 +12,7 @@ on:
 | 
			
		||||
      - '**/*.rb'
 | 
			
		||||
      - '.github/workflows/test-migrations.yml'
 | 
			
		||||
      - 'lib/tasks/tests.rake'
 | 
			
		||||
      - 'lib/tasks/db.rake'
 | 
			
		||||
 | 
			
		||||
  pull_request:
 | 
			
		||||
    paths:
 | 
			
		||||
@@ -90,6 +91,11 @@ jobs:
 | 
			
		||||
          bin/rails db:drop
 | 
			
		||||
          bin/rails db:create
 | 
			
		||||
          SKIP_POST_DEPLOYMENT_MIGRATIONS=true bin/rails tests:migrations:prepare_database
 | 
			
		||||
 | 
			
		||||
          # Migrate up to v4.2.0 breakpoint
 | 
			
		||||
          bin/rails db:migrate VERSION=20230907150100
 | 
			
		||||
 | 
			
		||||
          # Migrate the rest
 | 
			
		||||
          SKIP_POST_DEPLOYMENT_MIGRATIONS=true bin/rails db:migrate
 | 
			
		||||
          bin/rails db:migrate
 | 
			
		||||
          bin/rails tests:migrations:check_database
 | 
			
		||||
 
 | 
			
		||||
@@ -43,8 +43,14 @@ namespace :db do
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  task pre_migration_check: :environment do
 | 
			
		||||
    version = ActiveRecord::Base.connection.database_version
 | 
			
		||||
    abort 'This version of Mastodon requires PostgreSQL 12.0 or newer. Please update PostgreSQL before updating Mastodon.' if version < 120_000
 | 
			
		||||
    pg_version = ActiveRecord::Base.connection.database_version
 | 
			
		||||
    abort 'This version of Mastodon requires PostgreSQL 12.0 or newer. Please update PostgreSQL before updating Mastodon.' if pg_version < 120_000
 | 
			
		||||
 | 
			
		||||
    schema_version = ActiveRecord::Migrator.current_version
 | 
			
		||||
    abort <<~MESSAGE if ENV['SKIP_POST_DEPLOYMENT_MIGRATIONS'] && schema_version < 2023_09_07_150100
 | 
			
		||||
      Zero-downtime migrations from Mastodon versions earlier than 4.2.0 are not supported.
 | 
			
		||||
      Please update to Mastodon 4.2.x first or upgrade by stopping all services and running migrations without `SKIP_POST_DEPLOYMENT_MIGRATIONS`.
 | 
			
		||||
    MESSAGE
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  Rake::Task['db:migrate'].enhance(['db:pre_migration_check'])
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user