├── .formatter.exs ├── .github └── workflows │ └── elixir.yml ├── .gitignore ├── CHANGELOG.md ├── LICENSE.md ├── README.md ├── RELEASEME.md ├── lib ├── ast_parser.ex ├── ast_parser_full_detections.ex ├── config_comments_parser.ex ├── credo_check │ └── migrations_safety.ex ├── dangers_detector.ex ├── dangers_filter.ex ├── files_finder.ex ├── message_generator.ex ├── mix │ └── tasks │ │ ├── check_safety.ex │ │ └── migrate.ex └── runner.ex ├── mix.exs ├── mix.lock └── test ├── ast_parser_test.exs ├── config_comments_parser_test.exs ├── credo_check └── migrations_safety_test.exs ├── dangers_detector_test.exs ├── dangers_filter_test.exs ├── example_migrations ├── 20191026103001_create_table_and_index.exs ├── 20191026103002_execute_raw_sql.exs ├── 20191026103003_create_table.exs ├── 20191026103004_execute_raw_sql_with_safety_assured.exs ├── 20191026103005_remove_column.exs ├── 20191026103006_rename_table.exs ├── 20191026103007_add_column_with_default_value.exs ├── 20191026103008_change_column_type.exs ├── 20191026103009_safety_assured_with_config_comments.exs ├── 20220725111000_create_index.exs ├── 20220725111501_create_unique_index.exs ├── 20220726000151_create_index_concurrently_valid.exs ├── 20220726010151_create_index_concurrently_invalid.exs ├── 20220804010152_create_index_concurrently_without_disable_ddl_transaction.exs └── 20220804010153_create_index_concurrently_without_disable_migration_lock.exs ├── runner_test.exs └── test_helper.exs /.formatter.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/.formatter.exs -------------------------------------------------------------------------------- /.github/workflows/elixir.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/.github/workflows/elixir.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/.gitignore -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/LICENSE.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/README.md -------------------------------------------------------------------------------- /RELEASEME.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/RELEASEME.md -------------------------------------------------------------------------------- /lib/ast_parser.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/lib/ast_parser.ex -------------------------------------------------------------------------------- /lib/ast_parser_full_detections.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/lib/ast_parser_full_detections.ex -------------------------------------------------------------------------------- /lib/config_comments_parser.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/lib/config_comments_parser.ex -------------------------------------------------------------------------------- /lib/credo_check/migrations_safety.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/lib/credo_check/migrations_safety.ex -------------------------------------------------------------------------------- /lib/dangers_detector.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/lib/dangers_detector.ex -------------------------------------------------------------------------------- /lib/dangers_filter.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/lib/dangers_filter.ex -------------------------------------------------------------------------------- /lib/files_finder.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/lib/files_finder.ex -------------------------------------------------------------------------------- /lib/message_generator.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/lib/message_generator.ex -------------------------------------------------------------------------------- /lib/mix/tasks/check_safety.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/lib/mix/tasks/check_safety.ex -------------------------------------------------------------------------------- /lib/mix/tasks/migrate.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/lib/mix/tasks/migrate.ex -------------------------------------------------------------------------------- /lib/runner.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/lib/runner.ex -------------------------------------------------------------------------------- /mix.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/mix.exs -------------------------------------------------------------------------------- /mix.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/mix.lock -------------------------------------------------------------------------------- /test/ast_parser_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/test/ast_parser_test.exs -------------------------------------------------------------------------------- /test/config_comments_parser_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/test/config_comments_parser_test.exs -------------------------------------------------------------------------------- /test/credo_check/migrations_safety_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/test/credo_check/migrations_safety_test.exs -------------------------------------------------------------------------------- /test/dangers_detector_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/test/dangers_detector_test.exs -------------------------------------------------------------------------------- /test/dangers_filter_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/test/dangers_filter_test.exs -------------------------------------------------------------------------------- /test/example_migrations/20191026103001_create_table_and_index.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/test/example_migrations/20191026103001_create_table_and_index.exs -------------------------------------------------------------------------------- /test/example_migrations/20191026103002_execute_raw_sql.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/test/example_migrations/20191026103002_execute_raw_sql.exs -------------------------------------------------------------------------------- /test/example_migrations/20191026103003_create_table.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/test/example_migrations/20191026103003_create_table.exs -------------------------------------------------------------------------------- /test/example_migrations/20191026103004_execute_raw_sql_with_safety_assured.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/test/example_migrations/20191026103004_execute_raw_sql_with_safety_assured.exs -------------------------------------------------------------------------------- /test/example_migrations/20191026103005_remove_column.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/test/example_migrations/20191026103005_remove_column.exs -------------------------------------------------------------------------------- /test/example_migrations/20191026103006_rename_table.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/test/example_migrations/20191026103006_rename_table.exs -------------------------------------------------------------------------------- /test/example_migrations/20191026103007_add_column_with_default_value.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/test/example_migrations/20191026103007_add_column_with_default_value.exs -------------------------------------------------------------------------------- /test/example_migrations/20191026103008_change_column_type.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/test/example_migrations/20191026103008_change_column_type.exs -------------------------------------------------------------------------------- /test/example_migrations/20191026103009_safety_assured_with_config_comments.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/test/example_migrations/20191026103009_safety_assured_with_config_comments.exs -------------------------------------------------------------------------------- /test/example_migrations/20220725111000_create_index.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/test/example_migrations/20220725111000_create_index.exs -------------------------------------------------------------------------------- /test/example_migrations/20220725111501_create_unique_index.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/test/example_migrations/20220725111501_create_unique_index.exs -------------------------------------------------------------------------------- /test/example_migrations/20220726000151_create_index_concurrently_valid.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/test/example_migrations/20220726000151_create_index_concurrently_valid.exs -------------------------------------------------------------------------------- /test/example_migrations/20220726010151_create_index_concurrently_invalid.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/test/example_migrations/20220726010151_create_index_concurrently_invalid.exs -------------------------------------------------------------------------------- /test/example_migrations/20220804010152_create_index_concurrently_without_disable_ddl_transaction.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/test/example_migrations/20220804010152_create_index_concurrently_without_disable_ddl_transaction.exs -------------------------------------------------------------------------------- /test/example_migrations/20220804010153_create_index_concurrently_without_disable_migration_lock.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/test/example_migrations/20220804010153_create_index_concurrently_without_disable_migration_lock.exs -------------------------------------------------------------------------------- /test/runner_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Artur-Sulej/excellent_migrations/HEAD/test/runner_test.exs -------------------------------------------------------------------------------- /test/test_helper.exs: -------------------------------------------------------------------------------- 1 | ExUnit.start() 2 | --------------------------------------------------------------------------------