实例介绍
Evolve是一个受Flyway启发的跨平台数据库迁移工具,使用纯SQL脚本。它的目的是自动化数据库更改,并帮助保持这些更改在所有环境和开发团队中的同步。这使得它成为持续集成/交付的理想工具!
【实例截图】

【核心代码】
文件清单
└── Evolve-25e7488d993e98f59d855621b42dedfd161febbe
├── appveyor.yml
├── build
│ ├── common.props
│ └── warp
│ ├── linux-x64.warp-packer
│ └── windows-x64.warp-packer.exe
├── build.cake
├── Evolve.sln
├── images
│ ├── cassandra.png
│ ├── cockroachdb.png
│ ├── logo128.png
│ ├── logo64.png
│ ├── logo.png
│ ├── mariadb.png
│ ├── mysql.png
│ ├── postgresql.png
│ ├── sqlite.png
│ └── sqlserver.png
├── LICENSE
├── README.md
├── samples
│ ├── AspNetCoreSample_Evolve
│ │ ├── appsettings.Development.json
│ │ ├── appsettings.json
│ │ ├── AspNetCoreSample.csproj
│ │ ├── db
│ │ │ ├── datasets
│ │ │ │ └── V1_0_3__Insert_fake_data_to_table2_and_table3.sql
│ │ │ └── migrations
│ │ │ ├── R__Create_views.sql
│ │ │ ├── V1_0_1__Create_table1.sql
│ │ │ ├── V1_0_2__Create_table2_and_table3.sql
│ │ │ ├── V1_0_4__Create_table4_with_trigger.sql
│ │ │ └── V1_1_1__Create_table5.sql
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ └── Startup.cs
│ └── AspNetCoreSample_Evolve_EmbeddedResources
│ ├── appsettings.Development.json
│ ├── appsettings.json
│ ├── AspNetCoreSample3.csproj
│ ├── db
│ │ ├── datasets
│ │ │ └── V1_0_3__Insert_fake_data_to_table2_and_table3.sql
│ │ └── migrations
│ │ ├── R__Create_views.sql
│ │ ├── V1_0_1__Create_table1.sql
│ │ ├── V1_0_2__Create_table2_and_table3.sql
│ │ ├── V1_0_4__Create_table4_with_trigger.sql
│ │ └── V1_1_1__Create_table5.sql
│ ├── Program.cs
│ ├── Properties
│ │ └── launchSettings.json
│ └── Startup.cs
├── src
│ ├── Evolve
│ │ ├── Configuration
│ │ │ ├── CommandOptions.cs
│ │ │ ├── IEvolveConfiguration.cs
│ │ │ └── TransactionKind.cs
│ │ ├── Connection
│ │ │ └── WrappedConnection.cs
│ │ ├── Dialect
│ │ │ ├── Cassandra
│ │ │ │ ├── CassandraCluster.cs
│ │ │ │ ├── CassandraKeyspace.cs
│ │ │ │ ├── CassandraMetadataTable.cs
│ │ │ │ ├── Configuration.cs
│ │ │ │ └── CqlStatementBuilder.cs
│ │ │ ├── CockroachDb
│ │ │ │ ├── CockroachDbDatabase.cs
│ │ │ │ └── CockroachDbMetadataTable.cs
│ │ │ ├── CockroachDB
│ │ │ │ └── CockroachDBCluster.cs
│ │ │ ├── DatabaseHelper.cs
│ │ │ ├── DatabaseHelperFactory.cs
│ │ │ ├── DBMS.cs
│ │ │ ├── MySQL
│ │ │ │ ├── MySQLDatabase.cs
│ │ │ │ ├── MySQLMetadataTable.cs
│ │ │ │ └── MySQLSchema.cs
│ │ │ ├── PostgreSQL
│ │ │ │ ├── PostgreSQLDatabase.cs
│ │ │ │ ├── PostgreSQLMetadataTable.cs
│ │ │ │ └── PostgreSQLSchema.cs
│ │ │ ├── Schema.cs
│ │ │ ├── SimpleSqlStatementBuilder.cs
│ │ │ ├── SQLite
│ │ │ │ ├── SQLiteDatabase.cs
│ │ │ │ ├── SQLiteMetadataTable.cs
│ │ │ │ └── SQLiteSchema.cs
│ │ │ ├── SQLServer
│ │ │ │ ├── SQLServerDatabase.cs
│ │ │ │ ├── SQLServerMetadataTable.cs
│ │ │ │ ├── SQLServerSchema.cs
│ │ │ │ └── SQLServerStatementBuilder.cs
│ │ │ ├── SqlStatementBuilderBase.cs
│ │ │ └── SqlStatement.cs
│ │ ├── Evolve.cs
│ │ ├── Evolve.csproj
│ │ ├── Evolve.nuspec
│ │ ├── Exception
│ │ │ ├── EvolveConfigurationException.cs
│ │ │ ├── EvolveException.cs
│ │ │ ├── EvolveSqlException.cs
│ │ │ └── EvolveValidationException.cs
│ │ ├── Extensions
│ │ │ ├── MetadataEx.cs
│ │ │ ├── MiscEx.cs
│ │ │ └── WrappedConnectionEx.cs
│ │ ├── Metadata
│ │ │ ├── IEvolveMetadata.cs
│ │ │ ├── MetadataTable.cs
│ │ │ └── MetadataType.cs
│ │ ├── Migration
│ │ │ ├── EmbeddedResourceMigrationLoader.cs
│ │ │ ├── EmbeddedResourceMigrationScript.cs
│ │ │ ├── FileMigrationLoader.cs
│ │ │ ├── FileMigrationScript.cs
│ │ │ ├── IMigrationLoader.cs
│ │ │ ├── MigrationBase.cs
│ │ │ ├── MigrationMetadata.cs
│ │ │ ├── MigrationMetadataUI.cs
│ │ │ ├── MigrationScript.cs
│ │ │ └── MigrationVersion.cs
│ │ └── Utilities
│ │ ├── Check.cs
│ │ ├── ConsoleTable.cs
│ │ ├── MigrationUtil.cs
│ │ └── SimpleJSON.cs
│ ├── Evolve.Cli
│ │ ├── Evolve.Cli.csproj
│ │ ├── EvolveFactory.cs
│ │ ├── Program.cs
│ │ └── Properties
│ │ └── launchSettings.json
│ └── Evolve.Tool
│ └── Evolve.Tool.csproj
└── test
└── Evolve.Tests
├── AssertHelper.cs
├── Cli
│ └── CliTest.cs
├── Connection
│ └── WrappedConnectionTest.cs
├── Dialect
│ ├── Cassandra
│ │ └── CqlStatementBuilderTest.cs
│ ├── SimpleSqlStatementBuilderTest.cs
│ └── SQLServer
│ └── SQLServerStatementBuilderTest.cs
├── _evolve.cassandra.json
├── EvolveConfiguration.cs
├── Evolve.Tests.csproj
├── Extensions
│ └── DbConnectionExtensionsTest.cs
├── FactSkippedOnAppVeyorAttribute.cs
├── FakeMigrationScript.cs
├── Infrastructure
│ ├── CassandraContainer.cs
│ ├── CockroachDbContainer.cs
│ ├── _Internal
│ │ ├── DbContainerFixture.cs
│ │ ├── DockerContainerBuilder.cs
│ │ ├── DockerContainerBuilderOptions.cs
│ │ ├── DockerContainer.cs
│ │ └── IDbContainer.cs
│ ├── MySqlContainer.cs
│ ├── PostgreSqlContainer.cs
│ └── SQLServerContainer.cs
├── Integration
│ ├── Cassandra
│ │ ├── DialectTest.cs
│ │ ├── MigrationTest.cs
│ │ └── Resources
│ │ └── Cql_Scripts
│ │ ├── Checksum_mismatch
│ │ │ └── V5__Empty.cql
│ │ ├── Migration
│ │ │ ├── R__Repeatable_migration.cql
│ │ │ ├── V1__Create_Table.cql
│ │ │ ├── V2__Add_Column_Insert.cql
│ │ │ ├── V3__Create_Table.cql
│ │ │ ├── V4__Add_Column.cql
│ │ │ └── V5__Empty.cql
│ │ └── Repeatable
│ │ └── R__Repeatable_migration.cql
│ ├── CockroachDB
│ │ ├── DialectTest.cs
│ │ ├── MigrationTest.cs
│ │ └── Resources
│ │ └── Sql_Scripts
│ │ ├── Checksum_mismatch
│ │ │ └── V1_0__create_tables.sql
│ │ └── Migration
│ │ ├── V1_0__create_tables.sql
│ │ ├── V2_0__create_views.sql
│ │ ├── V3_0__create_sequences.sql
│ │ └── V3_1__create_sequences_b.sql
│ ├── MySQL
│ │ ├── DialectTest.cs
│ │ ├── MigrationTest.cs
│ │ └── Resources
│ │ └── Sql_Scripts
│ │ ├── Checksum_mismatch
│ │ │ └── V9_5__empty_script.sql
│ │ ├── Migration
│ │ │ ├── R__Repeatable_migration.sql
│ │ │ ├── V1__Trigger.sql
│ │ │ ├── V2__Uppercase.sql
│ │ │ ├── V3__View.sql
│ │ │ ├── V4__Quote.sql
│ │ │ ├── V5__Procedure.sql
│ │ │ ├── V6__Event.sql
│ │ │ ├── V7__HashComment.sql
│ │ │ ├── V8__Escape.sql
│ │ │ ├── V9_1__DoubleQuote.sql
│ │ │ ├── V9_5__Empty.sql
│ │ │ └── V9__Dump.sql
│ │ └── Repeatable
│ │ └── R__Repeatable_migration.sql
│ ├── PostgreSQL
│ │ ├── DialectTest.cs
│ │ ├── MigrationTest.cs
│ │ ├── Resources
│ │ │ └── Sql_Scripts
│ │ │ ├── Checksum_mismatch
│ │ │ │ └── V8_1__empty.sql
│ │ │ ├── Migration
│ │ │ │ ├── R__Repeatable_migration.sql
│ │ │ │ ├── R__Vacuum.sql
│ │ │ │ ├── V1_0__create_tables.sql
│ │ │ │ ├── V2_0__create_views.sql
│ │ │ │ ├── V2_1__create_mat_views.sql
│ │ │ │ ├── V3_0__create_sequences.sql
│ │ │ │ ├── V4_0__base_types.sql
│ │ │ │ ├── V4_1__domains.sql
│ │ │ │ ├── V5_0__aggregates.sql
│ │ │ │ ├── V6_0__functions.sql
│ │ │ │ ├── V7_0__enums.sql
│ │ │ │ └── V8_1__empty.sql
│ │ │ ├── Migration11
│ │ │ │ └── V6_1__procedures.sql
│ │ │ ├── OutOfOrder
│ │ │ │ └── V1_5__create_table.sql
│ │ │ ├── Repeatable
│ │ │ │ └── R__Repeatable_migration.sql
│ │ │ ├── Scenario001
│ │ │ │ ├── R__a_create_view3.sql
│ │ │ │ ├── R__b_create_view2.sql
│ │ │ │ └── R__c_create_view1.sql
│ │ │ ├── Scenario002
│ │ │ │ ├── R__a_create_view3.sql
│ │ │ │ ├── R__b_create_view2.sql
│ │ │ │ └── R__c_create_view1.sql
│ │ │ ├── Scenario003
│ │ │ │ ├── V1_0__create_table.sql
│ │ │ │ ├── V2_0__insert_into_table.sql
│ │ │ │ └── V3_0__error.sql
│ │ │ ├── Scenario004
│ │ │ │ ├── V1_0__create_table.sql
│ │ │ │ ├── V2_0__insert_into_table.sql
│ │ │ │ └── V3_0__error.sql
│ │ │ ├── Scenario005
│ │ │ │ ├── R__Repeatable_migration.sql
│ │ │ │ ├── V1_0__skip_1.sql
│ │ │ │ ├── V2_0__skip_2.sql
│ │ │ │ └── V3_0__create_table.sql
│ │ │ ├── Scenario006
│ │ │ │ └── R__Repeat_always_migration.sql
│ │ │ ├── Scenario007
│ │ │ │ ├── R__Repeat_always_migration.sql
│ │ │ │ └── V1.1.0__create_table.sql
│ │ │ ├── Scenario008
│ │ │ │ ├── Step01
│ │ │ │ │ ├── R__Step01_Repeat_always.sql
│ │ │ │ │ ├── R__Step01.sql
│ │ │ │ │ └── V1_0__Step01.sql
│ │ │ │ ├── Step02
│ │ │ │ │ └── R__Step01.sql
│ │ │ │ ├── Step03
│ │ │ │ │ ├── R__Step01_Repeat_always.sql
│ │ │ │ │ ├── R__Step01.sql
│ │ │ │ │ └── V1_0__Step01.sql
│ │ │ │ └── Step04
│ │ │ │ ├── R__Step01_Repeat_always.sql
│ │ │ │ ├── R__Step01.sql
│ │ │ │ └── V1_0__Step01.sql
│ │ │ └── Scenario009
│ │ │ └── V1_0_0__Create_extension.sql
│ │ ├── Scenario001.cs
│ │ ├── Scenario002.cs
│ │ ├── Scenario003.cs
│ │ ├── Scenario004.cs
│ │ ├── Scenario005.cs
│ │ ├── Scenario006.cs
│ │ ├── Scenario007.cs
│ │ ├── Scenario008.cs
│ │ └── Scenario009.cs
│ ├── ScenarioBase.cs
│ ├── SQLite
│ │ ├── DatabaseTest.cs
│ │ ├── MetadataTableTest.cs
│ │ ├── MigrationTest.cs
│ │ ├── Resources
│ │ │ └── Sql_Scripts
│ │ │ ├── Checksum_mismatch
│ │ │ │ └── V4__empty_script.sql
│ │ │ ├── Chinook_Sqlite.sql
│ │ │ ├── Migration
│ │ │ │ ├── R__Repeatable_migration.sql
│ │ │ │ ├── V1__'Create_table_with_autoincrement'.sql
│ │ │ │ ├── V2__Create_tables_with_FK.sql
│ │ │ │ ├── V3__Create_table_with_trigger.sql
│ │ │ │ └── V4__Empty.sql
│ │ │ └── Repeatable
│ │ │ └── R__Repeatable_migration.sql
│ │ └── SchemaTest.cs
│ └── SQLServer
│ ├── DialectTest.cs
│ ├── MigrationTest.cs
│ ├── Resources
│ │ └── Sql_Scripts
│ │ ├── Checksum_mismatch
│ │ │ └── V8_2__empty.sql
│ │ ├── Migration
│ │ │ ├── R__Repeatable_migration.sql
│ │ │ ├── V1__create_types.sql
│ │ │ ├── V2_0__create_table_calendrier_and_constraints.sql
│ │ │ ├── V2_1__create_table_test.sql
│ │ │ ├── V3_0__create_functions.sql
│ │ │ ├── V3_1_1__create_table_evolve.sql
│ │ │ ├── V3_1__create_database_evolvedb.sql
│ │ │ ├── V4__create_views.sql
│ │ │ ├── V5.0.0__create_synonyms.sql
│ │ │ ├── V6_0__create_procedures.sql
│ │ │ ├── V7_0__create_triggers.sql
│ │ │ ├── V8_2__empty.sql
│ │ │ ├── V8__create_sequences.sql
│ │ │ └── V9__do_not_run.sql
│ │ ├── Repeatable
│ │ │ └── R__Repeatable_migration.sql
│ │ ├── Scenario101
│ │ │ ├── V1_0__create_table.sql
│ │ │ ├── V2_0__insert_into_table.sql
│ │ │ └── V3_0__error.sql
│ │ └── Scenario102
│ │ ├── V1_0__create_table.sql
│ │ ├── V2_0__insert_into_table.sql
│ │ └── V3_0__error.sql
│ ├── Scenario101.cs
│ └── Scenario102.cs
├── Migration
│ ├── EmbeddedResourceMigrationLoaderTest.cs
│ ├── EmbeddedResourceMigrationScriptTest.cs
│ ├── FileMigrationLoaderTest.cs
│ ├── FileMigrationScriptTest.cs
│ ├── MigrationBaseTest.cs
│ └── MigrationVersionTest.cs
├── Resources
│ ├── Configuration
│ │ ├── App.config
│ │ ├── evolve2.json
│ │ ├── evolve2.staging.json
│ │ ├── evolve3.json
│ │ ├── evolve.json
│ │ └── Web.config
│ ├── LF_CRLF
│ │ ├── V2_3_1__Migration_description.sql
│ │ └── V2_3_2__Migration_description_lf.sql
│ ├── R__desc_b.sql
│ ├── Scripts_1
│ │ ├── 1_3_2__desc.sql
│ │ ├── R__desc_a.sql
│ │ ├── R__desc_c.sql
│ │ ├── V1_3_0__desc.sql
│ │ ├── V1_3_1__desc.sql
│ │ ├── V1_5_0__desc.sql
│ │ └── V2_0_0__desc.sql
│ ├── Scripts_2
│ │ ├── R__desc_b.sql
│ │ ├── r__desc_ci.sql
│ │ ├── V1_4_0__desc.sql
│ │ ├── V2_4_0__desc.sql
│ │ ├── v3_0_0__CI.sql
│ │ └── V3_0_1__CI.Sql
│ ├── SkippedScripts
│ └── V2_3_1__Duplicate_migration_script.sql
├── TestContext.cs
├── TestUtil.cs
├── Utilities
│ └── MigrationUtilTest.cs
├── xunit.runner.json
└── XunitTestAttribute.cs
106 directories, 291 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论