diff --git a/server/database/schema.go b/server/database/schema.go deleted file mode 100644 index 2655d9f2e..000000000 --- a/server/database/schema.go +++ /dev/null @@ -1,99 +0,0 @@ -package database - -import ( - "database/sql" - "log" -) - -// statements to setup our database -var stmts = []string{` - CREATE TABLE IF NOT EXISTS users ( - user_id INTEGER PRIMARY KEY AUTOINCREMENT - ,user_parent_id INTEGER - ,user_remote VARCHAR(255) - ,user_login VARCHAR(255) - ,user_access VARCHAR(255) - ,user_secret VARCHAR(255) - ,user_name VARCHAR(255) - ,user_email VARCHAR(255) - ,user_gravatar VARCHAR(255) - ,user_token VARCHAR(255) - ,user_admin BOOLEAN - ,user_active BOOLEAN - ,user_created INTEGER - ,user_updated INTEGER - ,user_synced INTEGER - ,UNIQUE(user_token) - ,UNIQUE(user_remote, user_login) - );`, ` - CREATE TABLE IF NOT EXISTS perms ( - perm_id INTEGER PRIMARY KEY AUTOINCREMENT - ,user_id INTEGER - ,repo_id INTEGER - ,perm_read BOOLEAN - ,perm_write BOOLEAN - ,perm_admin BOOLEAN - ,perm_created INTEGER - ,perm_updated INTEGER - ,UNIQUE (repo_id, user_id) - );`, ` - CREATE TABLE IF NOT EXISTS repos ( - repo_id INTEGER PRIMARY KEY AUTOINCREMENT - ,user_id INTEGER - ,repo_remote VARCHAR(255) - ,repo_host VARCHAR(255) - ,repo_owner VARCHAR(255) - ,repo_name VARCHAR(255) - ,repo_url VARCHAR(1024) - ,repo_clone_url VARCHAR(255) - ,repo_git_url VARCHAR(255) - ,repo_ssh_url VARCHAR(255) - ,repo_active BOOLEAN - ,repo_private BOOLEAN - ,repo_privileged BOOLEAN - ,repo_post_commit BOOLEAN - ,repo_pull_request BOOLEAN - ,repo_public_key VARCHAR(4000) - ,repo_private_key VARCHAR(4000) - ,repo_params VARCHAR(4000) - ,repo_timeout INTEGER - ,repo_created INTEGER - ,repo_updated INTEGER - ,UNIQUE(repo_host, repo_owner, repo_name) - );`, ` - CREATE TABLE IF NOT EXISTS commits ( - commit_id INTEGER PRIMARY KEY AUTOINCREMENT - ,repo_id INTEGER - ,commit_status VARCHAR(255) - ,commit_started INTEGER - ,commit_finished INTEGER - ,commit_duration INTEGER - ,commit_sha VARCHAR(255) - ,commit_branch VARCHAR(255) - ,commit_pr VARCHAR(255) - ,commit_author VARCHAR(255) - ,commit_gravatar VARCHAR(255) - ,commit_timestamp VARCHAR(255) - ,commit_message VARCHAR(255) - ,commit_yaml VARCHAR(4000) - ,commit_created INTEGER - ,commit_updated INTEGER - ,UNIQUE(commit_sha, commit_branch, repo_id) - );`, ` - CREATE TABLE IF NOT EXISTS output ( - output_id INTEGER PRIMARY KEY AUTOINCREMENT - ,commit_id INTEGER - ,output_raw BLOB - ,UNIQUE(commit_id) - );`, -} - -func Load(db *sql.DB) { - // execute all setup commands - for _, stmt := range stmts { - if _, err := db.Exec(stmt); err != nil { - // exit on failure since this should never happen - log.Fatalf("Error generating database schema. %s\n%s", err, stmt) - } - } -} diff --git a/server/database/schema/schema.go b/server/database/schema/schema.go index b9e149c53..b7d303f7e 100644 --- a/server/database/schema/schema.go +++ b/server/database/schema/schema.go @@ -1 +1,99 @@ package schema + +import ( + "database/sql" + "log" +) + +// statements to setup our database +var stmts = []string{` + CREATE TABLE IF NOT EXISTS users ( + user_id INTEGER PRIMARY KEY AUTOINCREMENT + ,user_parent_id INTEGER + ,user_remote VARCHAR(255) + ,user_login VARCHAR(255) + ,user_access VARCHAR(255) + ,user_secret VARCHAR(255) + ,user_name VARCHAR(255) + ,user_email VARCHAR(255) + ,user_gravatar VARCHAR(255) + ,user_token VARCHAR(255) + ,user_admin BOOLEAN + ,user_active BOOLEAN + ,user_created INTEGER + ,user_updated INTEGER + ,user_synced INTEGER + ,UNIQUE(user_token) + ,UNIQUE(user_remote, user_login) + );`, ` + CREATE TABLE IF NOT EXISTS perms ( + perm_id INTEGER PRIMARY KEY AUTOINCREMENT + ,user_id INTEGER + ,repo_id INTEGER + ,perm_read BOOLEAN + ,perm_write BOOLEAN + ,perm_admin BOOLEAN + ,perm_created INTEGER + ,perm_updated INTEGER + ,UNIQUE (repo_id, user_id) + );`, ` + CREATE TABLE IF NOT EXISTS repos ( + repo_id INTEGER PRIMARY KEY AUTOINCREMENT + ,user_id INTEGER + ,repo_remote VARCHAR(255) + ,repo_host VARCHAR(255) + ,repo_owner VARCHAR(255) + ,repo_name VARCHAR(255) + ,repo_url VARCHAR(1024) + ,repo_clone_url VARCHAR(255) + ,repo_git_url VARCHAR(255) + ,repo_ssh_url VARCHAR(255) + ,repo_active BOOLEAN + ,repo_private BOOLEAN + ,repo_privileged BOOLEAN + ,repo_post_commit BOOLEAN + ,repo_pull_request BOOLEAN + ,repo_public_key VARCHAR(4000) + ,repo_private_key VARCHAR(4000) + ,repo_params VARCHAR(4000) + ,repo_timeout INTEGER + ,repo_created INTEGER + ,repo_updated INTEGER + ,UNIQUE(repo_host, repo_owner, repo_name) + );`, ` + CREATE TABLE IF NOT EXISTS commits ( + commit_id INTEGER PRIMARY KEY AUTOINCREMENT + ,repo_id INTEGER + ,commit_status VARCHAR(255) + ,commit_started INTEGER + ,commit_finished INTEGER + ,commit_duration INTEGER + ,commit_sha VARCHAR(255) + ,commit_branch VARCHAR(255) + ,commit_pr VARCHAR(255) + ,commit_author VARCHAR(255) + ,commit_gravatar VARCHAR(255) + ,commit_timestamp VARCHAR(255) + ,commit_message VARCHAR(255) + ,commit_yaml VARCHAR(4000) + ,commit_created INTEGER + ,commit_updated INTEGER + ,UNIQUE(commit_sha, commit_branch, repo_id) + );`, ` + CREATE TABLE IF NOT EXISTS output ( + output_id INTEGER PRIMARY KEY AUTOINCREMENT + ,commit_id INTEGER + ,output_raw BLOB + ,UNIQUE(commit_id) + );`, +} + +func Load(db *sql.DB) { + // execute all setup commands + for _, stmt := range stmts { + if _, err := db.Exec(stmt); err != nil { + // exit on failure since this should never happen + log.Fatalf("Error generating database schema. %s\n%s", err, stmt) + } + } +} diff --git a/server/main.go b/server/main.go index ed9a6e24e..f5056ce1a 100644 --- a/server/main.go +++ b/server/main.go @@ -10,7 +10,7 @@ import ( "code.google.com/p/go.net/websocket" "github.com/drone/drone/server/channel" - "github.com/drone/drone/server/database" + "github.com/drone/drone/server/database/schema" "github.com/drone/drone/server/handler" "github.com/drone/drone/server/queue" "github.com/drone/drone/server/resource/commit" @@ -92,7 +92,7 @@ func main() { // setup the database meddler.Default = meddler.SQLite db, _ := sql.Open(driver, datasource) - database.Load(db) + schema.Load(db) // setup the database managers repos := repo.NewManager(db) diff --git a/server/resource/commit/manager_test.go b/server/resource/commit/manager_test.go index 85c969eb7..2da29b8d3 100644 --- a/server/resource/commit/manager_test.go +++ b/server/resource/commit/manager_test.go @@ -5,7 +5,7 @@ import ( "testing" "time" - "github.com/drone/drone/server/database" + "github.com/drone/drone/server/database/schema" "github.com/drone/drone/server/database/testdata" _ "github.com/mattn/go-sqlite3" ) @@ -16,7 +16,7 @@ var db *sql.DB // setup the test database and test fixtures func setup() { db, _ = sql.Open("sqlite3", ":memory:") - database.Load(db) + schema.Load(db) testdata.Load(db) } diff --git a/server/resource/perm/manager_test.go b/server/resource/perm/manager_test.go index 864f24279..5f872be73 100644 --- a/server/resource/perm/manager_test.go +++ b/server/resource/perm/manager_test.go @@ -5,7 +5,7 @@ import ( //"strings" "testing" - "github.com/drone/drone/server/database" + "github.com/drone/drone/server/database/schema" "github.com/drone/drone/server/database/testdata" "github.com/drone/drone/server/resource/repo" "github.com/drone/drone/server/resource/user" @@ -18,7 +18,7 @@ var db *sql.DB // setup the test database and test fixtures func setup() { db, _ = sql.Open("sqlite3", ":memory:") - database.Load(db) + schema.Load(db) testdata.Load(db) } diff --git a/server/resource/repo/manager_test.go b/server/resource/repo/manager_test.go index ed716ada5..0456bf7fd 100644 --- a/server/resource/repo/manager_test.go +++ b/server/resource/repo/manager_test.go @@ -4,7 +4,7 @@ import ( "database/sql" "testing" - "github.com/drone/drone/server/database" + "github.com/drone/drone/server/database/schema" "github.com/drone/drone/server/database/testdata" _ "github.com/mattn/go-sqlite3" ) @@ -15,7 +15,7 @@ var db *sql.DB // setup the test database and test fixtures func setup() { db, _ = sql.Open("sqlite3", ":memory:") - database.Load(db) + schema.Load(db) testdata.Load(db) } diff --git a/server/resource/user/manager_test.go b/server/resource/user/manager_test.go index 7ba384ba9..7471756b5 100644 --- a/server/resource/user/manager_test.go +++ b/server/resource/user/manager_test.go @@ -4,7 +4,7 @@ import ( "database/sql" "testing" - "github.com/drone/drone/server/database" + "github.com/drone/drone/server/database/schema" "github.com/drone/drone/server/database/testdata" _ "github.com/mattn/go-sqlite3" ) @@ -15,7 +15,7 @@ var db *sql.DB // setup the test database and test fixtures func setup() { db, _ = sql.Open("sqlite3", ":memory:") - database.Load(db) + schema.Load(db) testdata.Load(db) }