Files
vgstation13/code/modules/migrations/mysql/mysql_migration.dm
ShiftyRail bbd746ae42 Ports TG's BSQL library (#26455)
* Ports TG's BSQL

* write perms

* my mistake

* Missing migrations, fixes mistakes, removes unneeded logs

* Missing migrations, fixes mistakes, removes unneeded logs

* haha

* Final missing migration, actually fix runtime

* Fucked up this doesn't throw a warning

* sql fixes; polls
2020-05-19 13:35:10 -03:00

50 lines
1.2 KiB
Plaintext

/datum/migration/mysql
var/datum/subsystem/dbcore/db
dbms="mysql"
/datum/migration/mysql/New(var/datum/migration_controller/mysql/mc)
..(mc)
if(istype(mc))
db=mc.db
/datum/migration/mysql/query(var/sql)
var/datum/DBQuery/query = db.NewQuery(sql)
if(!query.Execute())
world.log << "Error in [package]#[id]: [query.ErrorMsg()]"
qdel(query)
return FALSE
var/list/rows=list()
while(query.NextRow())
rows += list(query.item)
qdel(query)
return rows
/datum/migration/mysql/hasResult(var/sql)
var/datum/DBQuery/query = db.NewQuery(sql)
if(!query.Execute())
world.log << "Error in [package]#[id]: [query.ErrorMsg()]"
qdel(query)
return FALSE
if (query.NextRow())
qdel(query)
return TRUE
qdel(query)
return FALSE
/datum/migration/mysql/execute(var/sql)
var/datum/DBQuery/query = db.NewQuery(sql)
if(!query.Execute())
world.log << "Error in [package]#[id]: [query.ErrorMsg()]"
qdel(query)
return FALSE
qdel(query)
return TRUE
/datum/migration/mysql/hasTable(var/tableName)
return hasResult("SHOW TABLES LIKE '[tableName]'")
/datum/migration/mysql/hasColumn(var/tableName, var/columnName)
return hasResult("SHOW COLUMNS FROM [tableName] LIKE '[columnName]'")