Skip to content

Instantly share code, notes, and snippets.

Keybase proof

I hereby claim:

  • I am mikaelamborn on github.
  • I am mikaelamborn (https://keybase.io/mikaelamborn) on keybase.
  • I have a public key ASBIy2s8ixNzfYPn17wWPTr2L34xl75YFrAaQwa-xTiiWQo

To claim this, I am signing this object:

@MikaelAmborn
MikaelAmborn / gist:5569979
Created May 13, 2013 17:32
figure out rails rollback STEP
file_diffs = `bash -c "comm -23 <(git ls-tree -r --name-only #{ENV['environment']}/master:db/migrate) <(git ls-tree -r --name-only HEAD:db/migrate)"`.split
if file_diffs.size > 0
puts "Need to do a db rollback before deploying branch"
current_env_migrations = `git ls-tree -r --name-only #{ENV['environment']}/master:db/migrate`.split
rollback_steps = current_env_migrations.drop_while { |e| !e[/#{file_diffs[0]}/] }.size
puts "heroku run rake STEP=#{rollback_steps} db:rollback -a #{ENV['environment']}"
`heroku run rake STEP=#{rollback_steps} db:rollback -a #{ENV['environment']}`
else
puts "No db rollback necessary"
end
package se.avega.dbunit;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestExecutionListeners;
import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@TestExecutionListeners({DbUnitTransactionPerTestClassListener.class})
@ContextConfiguration(locations={"classpath:testApplicationContext.xml"})
package se.avega.dbunit;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Collections;
import java.util.IdentityHashMap;
import java.util.Map;
import javax.sql.DataSource;
import org.dbunit.database.DatabaseConfig;
import org.dbunit.database.DatabaseDataSourceConnection;
DataSource ds = getApplicationContext().getBean("dataSource");
DatabaseDataSourceConnection jdbcConnection = new SpringDatabaseDataSourceConnection(ds);
try {
DatabaseOperation.INSERT.execute(jdbcConnection, createDataSetFromFile("ourTestDataXmlFile.xml"));
finally {
DataSourceUtils.releaseConnection(jdbcConnection.getConnection(), ds);
}
public class SpringConnection implements Connection {
private final DataSource dataSource;
private final Connection conn;
public SpringConnection(DataSource dataSource, Connection conn) {
this.dataSource = dataSource;
this.conn = conn;
}
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import org.dbunit.database.DatabaseDataSourceConnection;
import org.springframework.jdbc.datasource.DataSourceUtils;
public class SpringDatabaseDataSourceConnection extends DatabaseDataSourceConnection {
private final DataSource dataSource;
public SpringDatabaseDataSourceConnection(DataSource dataSource) throws SQLException {