// CreateTestDatabasePostgres is similar to CreateTestDatabase but it uses // Postgres instead of sqlite, this is needed for testing packages that rely // on some Postgres specifuc features (such as table inheritance) func CreateTestDatabasePostgres(dbUser, dbName string, migrationFunctions []func(*gorm.DB) error, fixtureFiles []string) (*gorm.DB, error) { // Postgres test database db, err := rebuildDatabasePostgres(dbUser, dbName) if err != nil { return nil, err } // Run all migrations migrations.MigrateAll(db, migrationFunctions) // Load data from data if err = fixtures.LoadFiles(fixtureFiles, db.DB(), "postgres"); err != nil { return nil, err } return db, nil }
// CreateTestDatabase recreates the test database and // runs migrations and fixtures as passed in, returning // a pointer to the database func CreateTestDatabase(dbPath string, migrationFunctions []func(*gorm.DB) error, fixtureFiles []string) (*gorm.DB, error) { // Init in-memory test database inMemoryDB, err := rebuildDatabase(dbPath) if err != nil { return nil, err } // Run all migrations migrations.MigrateAll(inMemoryDB, migrationFunctions) // Load data from data if err = fixtures.LoadFiles(fixtureFiles, inMemoryDB.DB(), "sqlite"); err != nil { return nil, err } return inMemoryDB, nil }