mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
orm: redesign orm (re-write it in V) (#10353)
This commit is contained in:
@ -4,9 +4,10 @@
|
||||
import sqlite
|
||||
|
||||
struct Module {
|
||||
id int
|
||||
id int [primary; sql: serial]
|
||||
name string
|
||||
nr_downloads int
|
||||
user User
|
||||
}
|
||||
|
||||
[table: 'userlist']
|
||||
@ -260,57 +261,30 @@ fn test_orm_sqlite() {
|
||||
select from User where id == 5
|
||||
}
|
||||
assert null_user.name == ''
|
||||
}
|
||||
|
||||
fn test_orm_pg() {
|
||||
/*
|
||||
dbname := os.getenv('VDB_NAME')
|
||||
dbuser := os.getenv('VDB_USER')
|
||||
if dbname == '' || dbuser == '' {
|
||||
eprintln(term.red('NB: this test requires VDB_NAME and VDB_USER env variables to be set'))
|
||||
return
|
||||
age_test := sql db {
|
||||
select from User where id == 1
|
||||
}
|
||||
db := pg.connect(dbname: dbname, user: dbuser) or { panic(err) }
|
||||
_ = db
|
||||
nr_modules := db.select count from modules
|
||||
//nr_modules := db.select count from Modules where id == 1
|
||||
nr_modules := db.select count from Modules where
|
||||
name == 'Bob' && id == 1
|
||||
println(nr_modules)
|
||||
|
||||
mod := db.select from Modules where id = 1 limit 1
|
||||
println(mod)
|
||||
assert age_test.age == 29
|
||||
|
||||
mods := db.select from Modules limit 10
|
||||
for mod in mods {
|
||||
println(mod)
|
||||
sql db {
|
||||
update User set age = age + 1 where id == 1
|
||||
}
|
||||
*/
|
||||
/*
|
||||
mod := db.retrieve<Module>(1)
|
||||
mod := db.select from Module where id = 1
|
||||
|
||||
mod := db.update Module set name = name + '!' where id > 10
|
||||
mut first := sql db {
|
||||
select from User where id == 1
|
||||
}
|
||||
|
||||
assert first.age == 30
|
||||
|
||||
nr_modules := db.select count from Modules
|
||||
where id > 1 && name == ''
|
||||
println(nr_modules)
|
||||
sql db {
|
||||
update User set age = age * 2 where id == 1
|
||||
}
|
||||
|
||||
nr_modules := db.select count from modules
|
||||
nr_modules := db.select from modules
|
||||
nr_modules := db[:modules].select
|
||||
*/
|
||||
/*
|
||||
mod := select from db.modules where id = 1 limit 1
|
||||
println(mod.name)
|
||||
top_mods := select from db.modules where nr_downloads > 1000 order by nr_downloads desc limit 10
|
||||
top_mods := db.select from modules where nr_downloads > 1000 order by nr_downloads desc limit 10
|
||||
top_mods := db.select<Module>(m => m.nr_downloads > 1000).order_by(m => m.nr_downloads).desc().limit(10)
|
||||
names := select name from db.modules // []string
|
||||
first = sql db {
|
||||
select from User where id == 1
|
||||
}
|
||||
|
||||
|
||||
n := db.q_int('select count(*) from modules')
|
||||
println(n)
|
||||
*/
|
||||
assert first.age == 60
|
||||
}
|
||||
|
Reference in New Issue
Block a user