Installation
Prerequis
- Un serveur FiveM fonctionnel
- oxmysql ou mysql-async installe et configure (l'un des deux suffit)
- Une base de donnees MySQL ou MariaDB
:::info Compatibilite
OrvexORM detecte automatiquement quelle librairie MySQL est installee sur ton serveur. Tu n'as rien a configurer — ca marche avec les deux. Depuis la v1.2.0, le driver utilise MySQL.query/MySQL.insert/MySQL.update avec l'API globale d'oxmysql (au lieu de MySQL.prepare, qui aplatissait les resultats a une seule ligne), et MySQL.Async.insert sous mysql-async pour recuperer le vrai insertId.
:::
Methode 1 : GitHub Release (recommandee)
- Telecharge la derniere release sur GitHub Releases
- Extrait le dossier
orvexormdans ton dossierresources/ - C'est tout !
ton-serveur/
└── resources/
└── orvexorm/
├── core/*.lua
├── database/*.lua
├── utils/*.lua
├── lib/*.lua
└── fxmanifest.lua
Demarrer la ressource
# Avec oxmysql :
ensure oxmysql
ensure orvexorm
# OU avec mysql-async :
ensure mysql-async
ensure orvexorm
:::caution Important
Ta librairie MySQL (oxmysql ou mysql-async) doit toujours etre demarree avant orvexorm.
:::
Utiliser dans ta ressource
Configure ta ressource pour utiliser OrvexORM :
Option A : Import direct (recommandee)
fx_version 'cerulean'
game 'common'
dependency 'orvexorm'
server_scripts {
'@orvexorm/lib/import.lua', -- Charge OrvexORM
'server.lua',
}
:::tip Migrations et schema
Pour utiliser les migrations ou les fonctionnalites de schema, utilise le pattern d'import complet @orvexorm/ dans ton fxmanifest.lua. Toutes les fonctionnalites (migrations, schema builder, introspection) sont disponibles via l'import direct.
:::
-- OrvexORM est disponible globalement
local User = OrvexORM.model("users", {
identifier = "string",
money = "number",
job = "string",
}, { primaryKey = "identifier" })
Option B : Via exports
local ORM = exports.orvexorm:lib()
local User = ORM.model("users", {
identifier = "string",
money = "number",
}, { primaryKey = "identifier" })
Configuration de la base de donnees
Si ce n'est pas deja fait, configure la connexion dans ton server.cfg :
set mysql_connection_string "mysql://user:password@localhost/nom_de_ta_base?charset=utf8mb4"
Remplace :
userpar ton nom d'utilisateur MySQLpasswordpar ton mot de passenom_de_ta_basepar le nom de ta base de donnees
Creer tes tables
Tu as 3 options :
Option A : sync() — Creation automatique
La plus simple. Definis ton modele et appelle .sync() :
local User = OrvexORM.model("users", {
identifier = "string",
money = "number",
job = "string",
}, { primaryKey = "identifier" })
User.sync() -- Cree la table si elle n'existe pas
Option B : Migrations
Pour un projet serieux, utilise les migrations :
OrvexORM.migrations({
{
name = "001_create_users",
up = function(schema)
schema:create("users", function(t)
t:primaryString("identifier", 60)
t:integer("money")
t:string("job")
end)
end,
down = function(schema)
schema:drop("users")
end,
},
})
OrvexORM.migrate()
Voir le guide complet : Migrations
Option C : Introspection — Table existante
Si ta table existe deja, OrvexORM peut la detecter automatiquement :
-- Genere le modele depuis la table MySQL existante
local User = OrvexORM.fromTable("users")
-- Ou recupere juste les champs
local fields, pk = OrvexORM.introspect("users")
Option D : SQL a la main
CREATE TABLE IF NOT EXISTS `users` (
`identifier` VARCHAR(60) NOT NULL,
`money` INT NOT NULL DEFAULT 0,
`job` VARCHAR(50) NOT NULL DEFAULT 'unemployed',
PRIMARY KEY (`identifier`)
);
:::tip Astuce Tu peux utiliser HeidiSQL, phpMyAdmin, ou DBeaver pour creer tes tables visuellement. :::
Verifier l'installation
Ajoute ce code dans ta ressource pour verifier que tout fonctionne :
Citizen.CreateThread(function()
local ORM = OrvexORM or exports.orvexorm:lib()
ORM.debug(true) -- Active les logs SQL
local User = ORM.model("users", {
identifier = "string",
money = "number",
}, { primaryKey = "identifier" })
User.sync()
print("^2[OrvexORM] Installation OK !^0")
end)
Tu devrais voir dans la console :
[OrvexORM] v1.2.1 loaded — ready to use
[OrvexORM] Installation OK !
Passe a la page Premier pas.