Skip to content

hencjo/summer-migration

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

Summer Migration

Summer Migration is a simple library for doing database migrations. It includes facilities for upgrading using scripts and doing java based migrations.

It's design goals are:

  • Minimalistic dependencies. Summer Migration don't clutter your classpath. And it doesn't depend on any logging framework.
  • Configuration in code, not XML or Annotations.
  • No resource discovery. Upgrades fail when needed resources aren't found, but the found resources does not determine how your migration turn out.
  • Simple to extend with own migrations.

Example:

import static com.hencjo.summer.migration.dsl.DSL.*;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import org.postgresql.ds.PGSimpleDataSource;
import com.hencjo.summer.migration.Migrator;
import com.hencjo.summer.migration.dsl.MigrationsDescription;

public class Upgrader {
	public static MigrationsDescription upgradeDescription() {
		return migrations(
			migration("1.0-baseline").installsThrough(script("1.0-baseline.sql")),
			migration("1.1-base64-decode-some-field", V1_1_Migrations.base64decodeSomeField())
		);
	}

	public void upgrade(PGSimpleDataSource datasource) throws SQLException, IOException {
		Migrator migrator = new Migrator();
		try (Connection connection = datasource.getConnection()) {
			migrator.migrate(connection, upgradeDescription());
		}
	}
}

Include it in your pom like this:

<dependency>
    <groupId>com.hencjo.summer</groupId>
    <artifactId>summer-migration</artifactId>
    <version>1.2</version>
</dependency>

About

Summer Database Migration for Java

Resources

License

Stars

Watchers

Forks

Packages

No packages published