mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	* upgrade xorm to v1.0.1 * fix start fail with postgres Co-authored-by: zeripath <art27@cantab.net>
		
			
				
	
	
		
			82 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright 2015 The Xorm Authors. All rights reserved.
 | |
| // Use of this source code is governed by a BSD-style
 | |
| // license that can be found in the LICENSE file.
 | |
| 
 | |
| // +build go1.11
 | |
| 
 | |
| package xorm
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 	"os"
 | |
| 	"runtime"
 | |
| 	"time"
 | |
| 
 | |
| 	"xorm.io/xorm/caches"
 | |
| 	"xorm.io/xorm/core"
 | |
| 	"xorm.io/xorm/dialects"
 | |
| 	"xorm.io/xorm/log"
 | |
| 	"xorm.io/xorm/names"
 | |
| 	"xorm.io/xorm/schemas"
 | |
| 	"xorm.io/xorm/tags"
 | |
| )
 | |
| 
 | |
| func close(engine *Engine) {
 | |
| 	engine.Close()
 | |
| }
 | |
| 
 | |
| // NewEngine new a db manager according to the parameter. Currently support four
 | |
| // drivers
 | |
| func NewEngine(driverName string, dataSourceName string) (*Engine, error) {
 | |
| 	dialect, err := dialects.OpenDialect(driverName, dataSourceName)
 | |
| 	if err != nil {
 | |
| 		return nil, err
 | |
| 	}
 | |
| 
 | |
| 	db, err := core.Open(driverName, dataSourceName)
 | |
| 	if err != nil {
 | |
| 		return nil, err
 | |
| 	}
 | |
| 
 | |
| 	cacherMgr := caches.NewManager()
 | |
| 	mapper := names.NewCacheMapper(new(names.SnakeMapper))
 | |
| 	tagParser := tags.NewParser("xorm", dialect, mapper, mapper, cacherMgr)
 | |
| 
 | |
| 	engine := &Engine{
 | |
| 		dialect:        dialect,
 | |
| 		TZLocation:     time.Local,
 | |
| 		defaultContext: context.Background(),
 | |
| 		cacherMgr:      cacherMgr,
 | |
| 		tagParser:      tagParser,
 | |
| 		driverName:     driverName,
 | |
| 		dataSourceName: dataSourceName,
 | |
| 		db:             db,
 | |
| 	}
 | |
| 
 | |
| 	if dialect.URI().DBType == schemas.SQLITE {
 | |
| 		engine.DatabaseTZ = time.UTC
 | |
| 	} else {
 | |
| 		engine.DatabaseTZ = time.Local
 | |
| 	}
 | |
| 
 | |
| 	logger := log.NewSimpleLogger(os.Stdout)
 | |
| 	logger.SetLevel(log.LOG_INFO)
 | |
| 	engine.SetLogger(log.NewLoggerAdapter(logger))
 | |
| 
 | |
| 	runtime.SetFinalizer(engine, close)
 | |
| 
 | |
| 	return engine, nil
 | |
| }
 | |
| 
 | |
| // NewEngineWithParams new a db manager with params. The params will be passed to dialects.
 | |
| func NewEngineWithParams(driverName string, dataSourceName string, params map[string]string) (*Engine, error) {
 | |
| 	engine, err := NewEngine(driverName, dataSourceName)
 | |
| 	engine.dialect.SetParams(params)
 | |
| 	return engine, err
 | |
| }
 | |
| 
 | |
| // Clone clone an engine
 | |
| func (engine *Engine) Clone() (*Engine, error) {
 | |
| 	return NewEngine(engine.DriverName(), engine.DataSourceName())
 | |
| }
 |