Changeset 620 in code


Ignore:
Timestamp:
Oct 11, 2021, 1:21:04 PM (4 years ago)
Author:
hubert
Message:

PostgreSQL support

Location:
trunk
Files:
1 added
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/cmd/soju/main.go

    r612 r620  
    6262        }
    6363
    64         db, err := soju.OpenSqliteDB(cfg.SQLDriver, cfg.SQLSource)
     64        db, err := soju.OpenDB(cfg.SQLDriver, cfg.SQLSource)
    6565        if err != nil {
    6666                log.Fatalf("failed to open database: %v", err)
  • trunk/cmd/sojuctl/main.go

    r531 r620  
    4444        }
    4545
    46         db, err := soju.OpenSqliteDB(cfg.SQLDriver, cfg.SQLSource)
     46        db, err := soju.OpenDB(cfg.SQLDriver, cfg.SQLSource)
    4747        if err != nil {
    4848                log.Fatalf("failed to open database: %v", err)
  • trunk/contrib/znc-import.go

    r542 r620  
    6262        }
    6363
    64         db, err := soju.OpenSqliteDB(cfg.SQLDriver, cfg.SQLSource)
     64        db, err := soju.OpenDB(cfg.SQLDriver, cfg.SQLSource)
    6565        if err != nil {
    6666                log.Fatalf("failed to open database: %v", err)
  • trunk/db.go

    r607 r620  
    2626        ListDeliveryReceipts(networkID int64) ([]DeliveryReceipt, error)
    2727        StoreClientDeliveryReceipts(networkID int64, client string, receipts []DeliveryReceipt) error
     28}
     29
     30func OpenDB(driver, source string) (Database, error) {
     31        switch driver {
     32        case "sqlite3":
     33                return OpenSqliteDB(source)
     34        case "postgres":
     35                return OpenPostgresDB(source)
     36        default:
     37                return nil, fmt.Errorf("unsupported database driver: %q", driver)
     38        }
    2839}
    2940
  • trunk/db_sqlite.go

    r607 r620  
    143143}
    144144
    145 func OpenSqliteDB(driver, source string) (Database, error) {
    146         sqlSqliteDB, err := sql.Open(driver, source)
     145func OpenSqliteDB(source string) (Database, error) {
     146        sqlSqliteDB, err := sql.Open("sqlite3", source)
    147147        if err != nil {
    148148                return nil, err
  • trunk/doc/soju.1.scd

    r615 r620  
    107107        Enable TLS support. The certificate and the key files must be PEM-encoded.
    108108
    109 *db* sqlite3 <path>
    110         Set the SQLite database path (default: "soju.db" in the current directory).
     109*db* <driver> <source>
     110        Set the database location for user, network and channel storage. By default,
     111        a _sqlite3_ database is opened in "./soju.db".
     112
     113        Supported drivers:
     114
     115        - _sqlite3_ expects _source_ to be a path to the SQLite file
     116        - _postgres_ expects _source_ to be a space-separated list of _key=value_
     117          parameters, e.g. _db postgres "host=/run/postgresql dbname=soju"_. Note
     118          that _sslmode_ defaults to _require_. For more information on connection
     119          strings, see:
     120          <https://pkg.go.dev/github.com/lib/pq#hdr-Connection_String_Parameters>.
    111121
    112122*log* fs <path>
  • trunk/go.mod

    r587 r620  
    88        github.com/emersion/go-sasl v0.0.0-20200509203442-7bfe0ed36a21
    99        github.com/klauspost/compress v1.13.5 // indirect
     10        github.com/lib/pq v1.10.3
    1011        github.com/mattn/go-sqlite3 v1.14.8
    1112        github.com/pires/go-proxyproto v0.6.1
  • trunk/go.sum

    r587 r620  
    4444github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y=
    4545github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII=
     46github.com/lib/pq v1.10.3 h1:v9QZf2Sn6AmjXtQeFpdoq/eaNtYP6IN+7lcrygsIAtg=
     47github.com/lib/pq v1.10.3/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
    4648github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
    4749github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
  • trunk/server_test.go

    r604 r620  
    1717
    1818func createTempDB(t *testing.T) Database {
    19         db, err := OpenSqliteDB("sqlite3", ":memory:")
     19        db, err := OpenDB("sqlite3", ":memory:")
    2020        if err != nil {
    2121                t.Fatalf("failed to create temporary SQLite database: %v", err)
Note: See TracChangeset for help on using the changeset viewer.