Changeset ef1c1c7 for server/db/db.go
- Timestamp:
- 09/24/26 17:43:19 (6 days ago)
- Branches:
- main
- Children:
- 0cee8ec
- Parents:
- a531b45
- File:
-
- 1 edited
-
server/db/db.go (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
server/db/db.go
ra531b45 ref1c1c7 11 11 "strings" 12 12 13 _"github.com/lib/pq"13 "github.com/lib/pq" 14 14 ) 15 15 … … 19 19 // which directory the program is started from. 20 20 // 21 //go:embed schema_creation.sql data_load.sql21 //go:embed schema_creation.sql advanced_db.sql data_load.sql 22 22 var sqlScripts embed.FS 23 23 … … 36 36 ) 37 37 38 var err error 39 DB, err = sql.Open("postgres", dsn) 40 if err != nil { 41 return fmt.Errorf("sql.Open: %w", err) 38 // Optional SSH tunnel, the same thing DBeaver's "SSH" tab does. When 39 // SSH_HOST is set, DBHOST/DBPORT are resolved from the SSH server's side 40 // (for the faculty server that is usually localhost:5432). 41 if sshHost := os.Getenv("SSH_HOST"); sshHost != "" { 42 dialer, err := newSSHDialer(sshHost) 43 if err != nil { 44 return err 45 } 46 connector, err := pq.NewConnector(dsn) 47 if err != nil { 48 return fmt.Errorf("pq.NewConnector: %w", err) 49 } 50 connector.Dialer(dialer) 51 DB = sql.OpenDB(connector) 52 } else { 53 var err error 54 DB, err = sql.Open("postgres", dsn) 55 if err != nil { 56 return fmt.Errorf("sql.Open: %w", err) 57 } 42 58 } 43 59 if err := DB.Ping(); err != nil { … … 72 88 } 73 89 74 // InitSchema runs schema_creation.sql thendata_load.sql.90 // InitSchema runs schema_creation.sql, advanced_db.sql (P7) and data_load.sql. 75 91 // Destructive: drops the `project` schema. Intended for the -init flag. 76 92 func InitSchema() error { 77 log.Println("Running schema_creation.sql ...") 78 if err := runScript("schema_creation.sql"); err != nil { 79 return err 93 for _, name := range []string{"schema_creation.sql", "advanced_db.sql"} { 94 log.Printf("Running %s ...", name) 95 if err := runScript(name); err != nil { 96 return err 97 } 80 98 } 81 99 if err := LoadData(); err != nil {
Note:
See TracChangeset
for help on using the changeset viewer.
