Skip to content

Instantly share code, notes, and snippets.

@erichowey
Created January 21, 2021 20:49
Show Gist options
  • Save erichowey/bd7f1ca0598e658ef39a9a9ea7b4fa9f to your computer and use it in GitHub Desktop.
Save erichowey/bd7f1ca0598e658ef39a9a9ea7b4fa9f to your computer and use it in GitHub Desktop.
LuaORMTest.lua
require "globals"
local settings = require "lib.Settings"
--local DB = require "lib.Database"
local API = require "LuaORM.API"
local Model = API.Model
local fieldTypes = API.fieldTypes
API.ORM:initialize({
connection = "LuaSQL/MySQL",
database = {
databaseName = settings.database.databaseName,
host = settings.database.host,
portNumber = settings.database.port,
userName = settings.database.userName,
password = settings.database.password
},
logger = { isEnabled = false, isDebugEnabled = false }
})
local sqlDateTimeFieldType = API.FieldType({
luaDataType = "string",
SQLDataType = "datetime"
})
local sqlBooleanType = API.FieldType({
luaDataType = "boolean",
SQLDataType = "tinyint(1)",
convert = function (_value)
if _value then
return 1
else
return 0
end
end,
to = function (_value)
if _value == 1 then
return true
else
return false
end
end
})
local Sample = Model({
name = "sample",
columns = {
{ name = "id", fieldType = fieldTypes.unsignedIntegerField, maxLength = 11, isPrimaryKey = true, autoIncrement = true },
{ name = "data", fieldType = fieldTypes.charField, maxLength = 100, unique = true, escapeValue = true },
{ name = "enabled", fieldType = sqlBooleanType, mustBeSet = false, defaultValue = false },
{ name = "created_at", fieldType = sqlDateTimeFieldType, mustBeSet = false },
{ name = "updated_at", fieldType = sqlDateTimeFieldType, mustBeSet = false }
}
})
Sample:get():find():delete()
local query = Sample:new({
data = "HEY",
enabled = true
})
query:save()
local query = Sample:new({
data = "YO",
enabled = false
})
query:save()
local result = Sample:get():find()
for i=1,result:count() do
print(result[i].enabled)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment