You've already forked woodpecker
							
							
				mirror of
				https://github.com/woodpecker-ci/woodpecker.git
				synced 2025-10-30 23:27:39 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			119 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			119 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package migrate
 | |
| 
 | |
| import (
 | |
| 	"github.com/BurntSushi/migration"
 | |
| )
 | |
| 
 | |
| // Setup is the database migration function that
 | |
| // will setup the initial SQL database structure.
 | |
| func Setup(tx migration.LimitedTx) error {
 | |
| 	var stmts = []string{
 | |
| 		blobTable,
 | |
| 		userTable,
 | |
| 		repoTable,
 | |
| 		permTable,
 | |
| 		commitTable,
 | |
| 	}
 | |
| 	for _, stmt := range stmts {
 | |
| 		_, err := tx.Exec(transform(stmt))
 | |
| 		if err != nil {
 | |
| 			return err
 | |
| 		}
 | |
| 	}
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| var userTable = `
 | |
| CREATE TABLE IF NOT EXISTS users (
 | |
| 	 user_id           INTEGER PRIMARY KEY AUTOINCREMENT
 | |
| 	,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_syncing      BOOLEAN
 | |
| 	,user_created      INTEGER
 | |
| 	,user_updated      INTEGER
 | |
| 	,user_synced       INTEGER
 | |
| 	,UNIQUE(user_token)
 | |
| 	,UNIQUE(user_remote, user_login)
 | |
| );
 | |
| `
 | |
| 
 | |
| var permTable = `
 | |
| 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)
 | |
| );
 | |
| `
 | |
| 
 | |
| var repoTable = `
 | |
| 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   BLOB
 | |
| 	,repo_private_key  BLOB
 | |
| 	,repo_params       BLOB
 | |
| 	,repo_timeout      INTEGER
 | |
| 	,repo_created      INTEGER
 | |
| 	,repo_updated      INTEGER
 | |
| 	,UNIQUE(repo_host, repo_owner, repo_name)
 | |
| );
 | |
| `
 | |
| 
 | |
| var commitTable = `
 | |
| 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       BLOB
 | |
| 	,commit_created    INTEGER
 | |
| 	,commit_updated    INTEGER
 | |
| 	,UNIQUE(commit_sha, commit_branch, repo_id)
 | |
| );
 | |
| `
 | |
| 
 | |
| var blobTable = `
 | |
| CREATE TABLE IF NOT EXISTS blobs (
 | |
| 	 blob_id      INTEGER PRIMARY KEY AUTOINCREMENT
 | |
| 	,blob_path    VARCHAR(255)
 | |
| 	,blob_data    BLOB
 | |
| 	,UNIQUE(blob_path)
 | |
| );
 | |
| `
 |