mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
| package migrations
 | |
| 
 | |
| import "github.com/go-xorm/core"
 | |
| 
 | |
| type Sqlite3 struct {
 | |
| 	BaseDialect
 | |
| }
 | |
| 
 | |
| func NewSqlite3Dialect() *Sqlite3 {
 | |
| 	d := Sqlite3{}
 | |
| 	d.BaseDialect.dialect = &d
 | |
| 	d.BaseDialect.driverName = SQLITE
 | |
| 	return &d
 | |
| }
 | |
| 
 | |
| func (db *Sqlite3) Quote(name string) string {
 | |
| 	return "`" + name + "`"
 | |
| }
 | |
| 
 | |
| func (db *Sqlite3) QuoteStr() string {
 | |
| 	return "`"
 | |
| }
 | |
| 
 | |
| func (db *Sqlite3) AutoIncrStr() string {
 | |
| 	return "AUTOINCREMENT"
 | |
| }
 | |
| 
 | |
| func (db *Sqlite3) SqlType(c *Column) string {
 | |
| 	switch c.Type {
 | |
| 	case DB_Date, DB_DateTime, DB_TimeStamp, DB_Time:
 | |
| 		return DB_DateTime
 | |
| 	case DB_TimeStampz:
 | |
| 		return DB_Text
 | |
| 	case DB_Char, DB_Varchar, DB_NVarchar, DB_TinyText, DB_Text, DB_MediumText, DB_LongText:
 | |
| 		return core.Text
 | |
| 	case DB_Bit, DB_TinyInt, DB_SmallInt, DB_MediumInt, DB_Int, DB_Integer, DB_BigInt, DB_Bool:
 | |
| 		return DB_Integer
 | |
| 	case DB_Float, DB_Double, DB_Real:
 | |
| 		return DB_Real
 | |
| 	case DB_Decimal, DB_Numeric:
 | |
| 		return DB_Numeric
 | |
| 	case DB_TinyBlob, DB_Blob, DB_MediumBlob, DB_LongBlob, DB_Bytea, DB_Binary, DB_VarBinary:
 | |
| 		return DB_Blob
 | |
| 	case DB_Serial, DB_BigSerial:
 | |
| 		c.IsPrimaryKey = true
 | |
| 		c.IsAutoIncrement = true
 | |
| 		c.Nullable = false
 | |
| 		return core.Integer
 | |
| 	default:
 | |
| 		return c.Type
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func (db *Sqlite3) TableCheckSql(tableName string) (string, []interface{}) {
 | |
| 	args := []interface{}{tableName}
 | |
| 	return "SELECT name FROM sqlite_master WHERE type='table' and name = ?", args
 | |
| }
 |