use autoload()
This commit is contained in:
parent
a3cbd71fa3
commit
b53b91efc0
@ -1,3 +1,4 @@
|
|||||||
|
local db = require("lapis.db")
|
||||||
local schema = require("lapis.db.schema")
|
local schema = require("lapis.db.schema")
|
||||||
|
|
||||||
local types = schema.types
|
local types = schema.types
|
||||||
@ -34,7 +35,7 @@ return {
|
|||||||
-- {"mixes", types.foreign_key},
|
-- {"mixes", types.foreign_key},
|
||||||
})
|
})
|
||||||
create_index("tracks", "unique_name", { unique=true })
|
create_index("tracks", "unique_name", { unique=true })
|
||||||
|
|
||||||
-- track_artists
|
-- track_artists
|
||||||
schema.create_table("track_artists", {
|
schema.create_table("track_artists", {
|
||||||
{"id", types.serial, { unique=true, primary_key=true }},
|
{"id", types.serial, { unique=true, primary_key=true }},
|
||||||
@ -44,8 +45,7 @@ return {
|
|||||||
{"artist", types.foreign_key}
|
{"artist", types.foreign_key}
|
||||||
})
|
})
|
||||||
create_index("track_artists", "track", "artist", { unique=true })
|
create_index("track_artists", "track", "artist", { unique=true })
|
||||||
|
|
||||||
|
|
||||||
-- stations
|
-- stations
|
||||||
schema.create_table("stations", {
|
schema.create_table("stations", {
|
||||||
{"id", types.serial, { unique=true, primary_key=true }},
|
{"id", types.serial, { unique=true, primary_key=true }},
|
||||||
@ -55,7 +55,28 @@ return {
|
|||||||
{"name", types.varchar},
|
{"name", types.varchar},
|
||||||
})
|
})
|
||||||
create_index("stations", "station", "name", { unique=true })
|
create_index("stations", "station", "name", { unique=true })
|
||||||
|
|
||||||
|
db.insert("stations", {
|
||||||
|
created_at = os.date(),
|
||||||
|
updated_at = os.date(),
|
||||||
|
station = 1,
|
||||||
|
name = "Cybernetic Broadcasting System"
|
||||||
|
})
|
||||||
|
|
||||||
|
db.insert("stations", {
|
||||||
|
created_at = os.date(),
|
||||||
|
updated_at = os.date(),
|
||||||
|
station = 2,
|
||||||
|
name = "Disco Fetish"
|
||||||
|
})
|
||||||
|
|
||||||
|
db.insert("stations", {
|
||||||
|
created_at = os.date(),
|
||||||
|
updated_at = os.date(),
|
||||||
|
station = 3,
|
||||||
|
name = "The Dream Machine"
|
||||||
|
})
|
||||||
|
|
||||||
-- airtime
|
-- airtime
|
||||||
schema.create_table("airtimes", {
|
schema.create_table("airtimes", {
|
||||||
{"id", types.serial, { unique=true, primary_key=true }},
|
{"id", types.serial, { unique=true, primary_key=true }},
|
||||||
@ -67,7 +88,6 @@ return {
|
|||||||
})
|
})
|
||||||
create_index("airtimes", "airtime", "track", "station", { unique=true })
|
create_index("airtimes", "airtime", "track", "station", { unique=true })
|
||||||
|
|
||||||
|
|
||||||
-- -- releases
|
-- -- releases
|
||||||
-- schema.create_table("releases", {
|
-- schema.create_table("releases", {
|
||||||
-- {"id", types.serial, { unique=true, primary_key=true }},
|
-- {"id", types.serial, { unique=true, primary_key=true }},
|
||||||
@ -89,7 +109,8 @@ return {
|
|||||||
-- {"release", types.foreign_key}
|
-- {"release", types.foreign_key}
|
||||||
-- })
|
-- })
|
||||||
-- create_index("track_releases", "track", "release", { unique=true })
|
-- create_index("track_releases", "track", "release", { unique=true })
|
||||||
|
|
||||||
|
-- -- labels
|
||||||
-- schema.create_table("labels", {
|
-- schema.create_table("labels", {
|
||||||
-- {"id", types.serial, { unique=true, primary_key=true }},
|
-- {"id", types.serial, { unique=true, primary_key=true }},
|
||||||
-- {"created_at", types.time},
|
-- {"created_at", types.time},
|
||||||
@ -99,14 +120,15 @@ return {
|
|||||||
-- })
|
-- })
|
||||||
-- create_index("labels", "name", { unique = true })
|
-- create_index("labels", "name", { unique = true })
|
||||||
|
|
||||||
-- schema.create_table("release_labels", {
|
-- -- label_releases
|
||||||
|
-- schema.create_table("label_releases", {
|
||||||
-- {"id", types.serial, { unique=true, primary_key=true }},
|
-- {"id", types.serial, { unique=true, primary_key=true }},
|
||||||
-- {"created_at", types.time},
|
-- {"created_at", types.time},
|
||||||
-- {"updated_at", types.time},
|
-- {"updated_at", types.time},
|
||||||
-- {"release", types.foreign_key},
|
-- {"release", types.foreign_key},
|
||||||
-- {"label", types.foreign_key}
|
-- {"label", types.foreign_key}
|
||||||
-- })
|
-- })
|
||||||
-- create_index("release_labels", "release", "label", { unique=true })
|
-- create_index("label_releases", "release", "label", { unique=true })
|
||||||
|
|
||||||
-- -- mixes
|
-- -- mixes
|
||||||
-- schema.create_table("mixes", {
|
-- schema.create_table("mixes", {
|
||||||
@ -119,7 +141,6 @@ return {
|
|||||||
-- create_index("mixes", "name", "date", { unique = true })
|
-- create_index("mixes", "name", "date", { unique = true })
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- ---------- --
|
-- ---------- --
|
||||||
-- User stuff --
|
-- User stuff --
|
||||||
-- ---------- --
|
-- ---------- --
|
||||||
@ -143,4 +164,5 @@ return {
|
|||||||
-- favorite_labels
|
-- favorite_labels
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1,51 +1,8 @@
|
|||||||
local Model = require("lapis.db.model").Model
|
local Model = require("lapis.db.model").Model
|
||||||
|
|
||||||
-- ----------- --
|
-- -- ----------- --
|
||||||
-- Track stuff --
|
-- -- Track stuff --
|
||||||
-- ----------- --
|
-- -- ----------- --
|
||||||
|
|
||||||
-- artists
|
|
||||||
-- - name/date/bio/urls
|
|
||||||
local Artists = Model:extend("artists", {
|
|
||||||
timestamp = true
|
|
||||||
})
|
|
||||||
|
|
||||||
-- tracks
|
|
||||||
-- - title/unique name == `lower(artist+title)`
|
|
||||||
local Tracks = Model:extend("tracks", {
|
|
||||||
timestamp = true,
|
|
||||||
-- relations = {
|
|
||||||
-- {"track_releases", has_many = "TrackReleases"},
|
|
||||||
-- {"track_mixes", has_many = "TrackMixes"},
|
|
||||||
-- {"copies", has_many = "Tracks"},
|
|
||||||
-- {"original", has_one = "Tracks"}
|
|
||||||
-- }
|
|
||||||
})
|
|
||||||
|
|
||||||
-- track_artists
|
|
||||||
local TrackArtists = Model:extend("track_artists", {
|
|
||||||
timestamp = true,
|
|
||||||
relations = {
|
|
||||||
{"track", belongs_to = "Tracks"},
|
|
||||||
{"artist", belongs_to = "Artists"}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
-- stations
|
|
||||||
-- - name/id
|
|
||||||
local Stations = Model:extend("stations", {
|
|
||||||
timestamp = true
|
|
||||||
})
|
|
||||||
|
|
||||||
-- airtime
|
|
||||||
-- - date
|
|
||||||
local Airtime = Model:extend("airtimes", {
|
|
||||||
timestamp = true,
|
|
||||||
relations = {
|
|
||||||
{"track", belongs_to = "Tracks"},
|
|
||||||
{"station", has_one = "Stations"}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
-- -- releases
|
-- -- releases
|
||||||
@ -117,3 +74,7 @@ local Users = Model:extend("users", {
|
|||||||
-- local Favorite_artists = Model:extend("favorite_artists", {})
|
-- local Favorite_artists = Model:extend("favorite_artists", {})
|
||||||
-- local Favorite_releases = Model:extend("favorite_releases", {})
|
-- local Favorite_releases = Model:extend("favorite_releases", {})
|
||||||
-- local Favorite_labels = Model:extend("favorite_labels", {})
|
-- local Favorite_labels = Model:extend("favorite_labels", {})
|
||||||
|
|
||||||
|
|
||||||
|
local autoload = require("lapis.util").autoload
|
||||||
|
return autoload("models")
|
||||||
14
code/models/airtime.lua
Normal file
14
code/models/airtime.lua
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
local Model = require("lapis.db.model").Model
|
||||||
|
|
||||||
|
-- airtime
|
||||||
|
local Airtimes = Model:extend("airtimes", {
|
||||||
|
-- "airtime", types.time
|
||||||
|
|
||||||
|
timestamp = true,
|
||||||
|
relations = {
|
||||||
|
{"tracks", belongs_to = "Tracks"},
|
||||||
|
{"stations", has_one = "Stations"}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
return Airtimes
|
||||||
12
code/models/artists.lua
Normal file
12
code/models/artists.lua
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
local Model = require("lapis.db.model").Model
|
||||||
|
|
||||||
|
-- artists
|
||||||
|
local Artists = Model:extend("artists", {
|
||||||
|
-- "name", types.varchar
|
||||||
|
-- "date", types.date
|
||||||
|
-- "bio", types.text
|
||||||
|
-- "urls", types.text
|
||||||
|
timestamp = true
|
||||||
|
})
|
||||||
|
|
||||||
|
return Artists
|
||||||
12
code/models/stations.lua
Normal file
12
code/models/stations.lua
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
local Model = require("lapis.db.model").Model
|
||||||
|
|
||||||
|
-- stations
|
||||||
|
-- - name/id
|
||||||
|
local Stations = Model:extend("stations", {
|
||||||
|
-- "station", types.integer
|
||||||
|
-- "name", types.varchar
|
||||||
|
|
||||||
|
timestamp = true
|
||||||
|
})
|
||||||
|
|
||||||
|
return Stations
|
||||||
12
code/models/trackartists.lua
Normal file
12
code/models/trackartists.lua
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
local Model = require("lapis.db.model").Model
|
||||||
|
|
||||||
|
-- track_artists
|
||||||
|
local TrackArtists = Model:extend("track_artists", {
|
||||||
|
timestamp = true,
|
||||||
|
relations = {
|
||||||
|
{"track", belongs_to = "Tracks"},
|
||||||
|
{"artist", belongs_to = "Artists"}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
return TrackArtists
|
||||||
17
code/models/tracks.lua
Normal file
17
code/models/tracks.lua
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
local Model = require("lapis.db.model").Model
|
||||||
|
|
||||||
|
-- tracks
|
||||||
|
-- - title/unique name == `lower(artist+title)`
|
||||||
|
local Tracks = Model:extend("tracks", {
|
||||||
|
-- "name", types.varchar
|
||||||
|
-- "unique_name", types.varchar
|
||||||
|
-- "year", types.integer
|
||||||
|
|
||||||
|
timestamp = true,
|
||||||
|
-- relations = {
|
||||||
|
-- {"copies", has_many = "Tracks"},
|
||||||
|
-- {"original", has_one = "Tracks"}
|
||||||
|
-- }
|
||||||
|
})
|
||||||
|
|
||||||
|
return Tracks
|
||||||
Loading…
Reference in New Issue
Block a user