Skip to content

Instantly share code, notes, and snippets.

@yamkazu
Last active December 14, 2015 11:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yamkazu/5079894 to your computer and use it in GitHub Desktop.
Save yamkazu/5079894 to your computer and use it in GitHub Desktop.
PostgreSQLですべてのデータを削除する
import groovy.sql.Sql
class DatabaseCleaner {
static excludes = ["databasechangelog", "databasechangeloglock"]
static clean(sql) {
// テーブルデータの削除
sql.eachRow("SELECT tablename FROM pg_tables WHERE schemaname = 'public';") { row ->
if (row.tablename in excludes) return
sql.executeUpdate("TRUNCATE TABLE ${row.tablename} CASCADE;".toString())
}
// シーケンスの初期化
sql.eachRow("SELECT relname AS sequnence_name FROM pg_class WHERE relkind = 'S';") { row ->
sql.execute("SELECT setval('${row.sequnence_name}', (SELECT start_value FROM ${row.sequnence_name}), false);".toString())
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment