db.go 674 B

1234567891011121314151617181920212223242526272829
  1. package db
  2. import (
  3. "github.com/pkg/errors"
  4. "github.com/usememos/memos/server/profile"
  5. "github.com/usememos/memos/store"
  6. "github.com/usememos/memos/store/db/mysql"
  7. "github.com/usememos/memos/store/db/sqlite"
  8. )
  9. // NewDBDriver creates new db driver based on profile.
  10. func NewDBDriver(profile *profile.Profile) (store.Driver, error) {
  11. var driver store.Driver
  12. var err error
  13. switch profile.Driver {
  14. case "sqlite":
  15. driver, err = sqlite.NewDB(profile)
  16. case "mysql":
  17. driver, err = mysql.NewDB(profile)
  18. default:
  19. return nil, errors.New("unknown db driver")
  20. }
  21. if err != nil {
  22. return nil, errors.Wrap(err, "failed to create db driver")
  23. }
  24. return driver, nil
  25. }