mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 02:16:05 +00:00
* 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
50 lines
1.2 KiB
Plaintext
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]'")
|