port over some more
This commit is contained in:
420
priv/repo/migrations/20260215000001_create_base_tables.exs
Normal file
420
priv/repo/migrations/20260215000001_create_base_tables.exs
Normal file
@@ -0,0 +1,420 @@
|
||||
defmodule Odinsea.Repo.Migrations.CreateBaseTables do
|
||||
use Ecto.Migration
|
||||
|
||||
def up do
|
||||
# ============================================================================
|
||||
# CORE ACCOUNT TABLES
|
||||
# ============================================================================
|
||||
|
||||
create table(:accounts) do
|
||||
add :name, :string, size: 13, null: false
|
||||
add :password, :string, size: 128, null: false, default: ""
|
||||
add :salt, :string, size: 32
|
||||
add :secondpassword, :string, size: 134
|
||||
add :salt2, :string, size: 32
|
||||
add :loggedin, :boolean, null: false, default: false
|
||||
add :lastlogin, :naive_datetime
|
||||
add :birthday, :date, null: false, default: "0000-01-01"
|
||||
add :banned, :boolean, null: false, default: false
|
||||
add :banreason, :text
|
||||
add :gm, :boolean, null: false, default: false
|
||||
add :email, :string, size: 255
|
||||
add :macs, :string, size: 255
|
||||
add :tempban, :naive_datetime, null: false, default: fragment("'0000-00-00 00:00:00'")
|
||||
add :greason, :integer
|
||||
add :acash, :integer, null: false, default: 0
|
||||
add :mpoints, :integer, null: false, default: 0
|
||||
add :gender, :integer, null: false, default: 0
|
||||
add :session_ip, :string, size: 64
|
||||
add :points, :integer, null: false, default: 0
|
||||
add :vpoints, :integer, null: false, default: 0
|
||||
add :totalvotes, :integer, null: false, default: 0
|
||||
add :lastlogon, :naive_datetime
|
||||
add :lastvoteip, :string, size: 64
|
||||
|
||||
timestamps(type: :naive_datetime, inserted_at: :createdat, updated_at: false)
|
||||
end
|
||||
|
||||
create unique_index(:accounts, [:name])
|
||||
create index(:accounts, [:id, :banned, :gm], name: :ranking1)
|
||||
create index(:accounts, [:id])
|
||||
|
||||
create table(:character_slots) do
|
||||
add :accid, :integer, null: false, default: 0
|
||||
add :worldid, :integer, null: false, default: 0
|
||||
add :charslots, :integer, null: false, default: 6
|
||||
end
|
||||
|
||||
create index(:character_slots, [:accid])
|
||||
create index(:character_slots, [:id])
|
||||
|
||||
create table(:storages) do
|
||||
add :accountid, references(:accounts, on_delete: :delete_all), null: false, default: 0
|
||||
add :slots, :integer, null: false, default: 0
|
||||
add :meso, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create index(:storages, [:accountid])
|
||||
|
||||
create table(:iplog) do
|
||||
add :accid, :integer, null: false
|
||||
add :ip, :string, size: 45, null: false
|
||||
add :time, :string, size: 45, null: false
|
||||
end
|
||||
|
||||
create table(:ipbans) do
|
||||
add :ip, :string, size: 40, null: false, default: ""
|
||||
end
|
||||
|
||||
create table(:macbans) do
|
||||
add :mac, :string, size: 30, null: false
|
||||
end
|
||||
|
||||
create unique_index(:macbans, [:mac], name: :mac_2)
|
||||
|
||||
create table(:macfilters) do
|
||||
add :filter, :string, size: 30, null: false
|
||||
end
|
||||
|
||||
# ============================================================================
|
||||
# CHARACTER TABLES
|
||||
# ============================================================================
|
||||
|
||||
create table(:characters) do
|
||||
add :accountid, :integer, null: false, default: 0
|
||||
add :world, :integer, null: false, default: 0
|
||||
add :name, :string, size: 13, null: false, default: ""
|
||||
add :level, :integer, null: false, default: 0
|
||||
add :exp, :integer, null: false, default: 0
|
||||
add :str, :integer, null: false, default: 0
|
||||
add :dex, :integer, null: false, default: 0
|
||||
add :luk, :integer, null: false, default: 0
|
||||
add :int, :integer, null: false, default: 0
|
||||
add :hp, :integer, null: false, default: 0
|
||||
add :mp, :integer, null: false, default: 0
|
||||
add :maxhp, :integer, null: false, default: 0
|
||||
add :maxmp, :integer, null: false, default: 0
|
||||
add :meso, :integer, null: false, default: 0
|
||||
add :hp_ap_used, :integer, null: false, default: 0
|
||||
add :job, :integer, null: false, default: 0
|
||||
add :skincolor, :integer, null: false, default: 0
|
||||
add :gender, :integer, null: false, default: 0
|
||||
add :fame, :integer, null: false, default: 0
|
||||
add :hair, :integer, null: false, default: 0
|
||||
add :face, :integer, null: false, default: 0
|
||||
add :ap, :integer, null: false, default: 0
|
||||
add :map, :integer, null: false, default: 0
|
||||
add :spawnpoint, :integer, null: false, default: 0
|
||||
add :gm, :integer, null: false, default: 0
|
||||
add :party, :integer, null: false, default: 0
|
||||
add :buddycapacity, :integer, null: false, default: 25
|
||||
add :guildid, :integer, null: false, default: 0
|
||||
add :guildrank, :integer, null: false, default: 5
|
||||
add :alliancerank, :integer, null: false, default: 5
|
||||
add :guildcontribution, :integer, null: false, default: 0
|
||||
add :pets, :string, size: 13, null: false, default: "-1,-1,-1"
|
||||
add :sp, :string, size: 255, null: false, default: "0,0,0,0,0,0,0,0,0,0"
|
||||
add :subcategory, :integer, null: false, default: 0
|
||||
add :rank, :integer, null: false, default: 1
|
||||
add :rankmove, :integer, null: false, default: 0
|
||||
add :jobrank, :integer, null: false, default: 1
|
||||
add :jobrankmove, :integer, null: false, default: 0
|
||||
add :marriageid, :integer, null: false, default: 0
|
||||
add :familyid, :integer, null: false, default: 0
|
||||
add :seniorid, :integer, null: false, default: 0
|
||||
add :junior1, :integer, null: false, default: 0
|
||||
add :junior2, :integer, null: false, default: 0
|
||||
add :currentrep, :integer, null: false, default: 0
|
||||
add :totalrep, :integer, null: false, default: 0
|
||||
add :gachexp, :integer, null: false, default: 0
|
||||
add :fatigue, :integer, null: false, default: 0
|
||||
add :charm, :integer, null: false, default: 0
|
||||
add :craft, :integer, null: false, default: 0
|
||||
add :charisma, :integer, null: false, default: 0
|
||||
add :will, :integer, null: false, default: 0
|
||||
add :sense, :integer, null: false, default: 0
|
||||
add :insight, :integer, null: false, default: 0
|
||||
add :totalwins, :integer, null: false, default: 0
|
||||
add :totallosses, :integer, null: false, default: 0
|
||||
add :pvpexp, :integer, null: false, default: 0
|
||||
add :pvppoints, :integer, null: false, default: 0
|
||||
|
||||
timestamps(type: :naive_datetime, inserted_at: :createdate, updated_at: false)
|
||||
end
|
||||
|
||||
create index(:characters, [:accountid])
|
||||
create index(:characters, [:id])
|
||||
create index(:characters, [:guildid])
|
||||
create index(:characters, [:familyid])
|
||||
create index(:characters, [:marriageid])
|
||||
create index(:characters, [:seniorid])
|
||||
|
||||
# ============================================================================
|
||||
# INVENTORY TABLES
|
||||
# ============================================================================
|
||||
|
||||
create table(:inventoryitems) do
|
||||
add :characterid, :integer
|
||||
add :accountid, :integer
|
||||
add :packageid, :integer
|
||||
add :itemid, :integer, null: false, default: 0
|
||||
add :inventorytype, :integer, null: false, default: 0
|
||||
add :position, :integer, null: false, default: 0
|
||||
add :quantity, :integer, null: false, default: 0
|
||||
add :owner, :string, size: 255
|
||||
add :gm_log, :string, size: 255
|
||||
add :uniqueid, :integer, null: false, default: -1
|
||||
add :flag, :integer, null: false, default: 0
|
||||
add :expiredate, :bigint, null: false, default: -1
|
||||
add :type, :integer, null: false, default: 0
|
||||
add :sender, :string, size: 13, null: false, default: ""
|
||||
end
|
||||
|
||||
create index(:inventoryitems, [:inventorytype])
|
||||
create index(:inventoryitems, [:accountid])
|
||||
create index(:inventoryitems, [:packageid])
|
||||
create index(:inventoryitems, [:characterid, :inventorytype], name: :characterid_2)
|
||||
|
||||
create table(:inventoryequipment) do
|
||||
add :inventoryitemid, references(:inventoryitems, on_delete: :delete_all), null: false, default: 0
|
||||
add :upgradeslots, :integer, null: false, default: 0
|
||||
add :level, :integer, null: false, default: 0
|
||||
add :str, :integer, null: false, default: 0
|
||||
add :dex, :integer, null: false, default: 0
|
||||
add :int, :integer, null: false, default: 0
|
||||
add :luk, :integer, null: false, default: 0
|
||||
add :hp, :integer, null: false, default: 0
|
||||
add :mp, :integer, null: false, default: 0
|
||||
add :watk, :integer, null: false, default: 0
|
||||
add :matk, :integer, null: false, default: 0
|
||||
add :wdef, :integer, null: false, default: 0
|
||||
add :mdef, :integer, null: false, default: 0
|
||||
add :acc, :integer, null: false, default: 0
|
||||
add :avoid, :integer, null: false, default: 0
|
||||
add :hands, :integer, null: false, default: 0
|
||||
add :speed, :integer, null: false, default: 0
|
||||
add :jump, :integer, null: false, default: 0
|
||||
add :vicioushammer, :integer, null: false, default: 0
|
||||
add :itemexp, :integer, null: false, default: 0
|
||||
add :durability, :integer, null: false, default: -1
|
||||
add :enhance, :integer, null: false, default: 0
|
||||
add :potential1, :integer, null: false, default: 0
|
||||
add :potential2, :integer, null: false, default: 0
|
||||
add :potential3, :integer, null: false, default: 0
|
||||
add :hpr, :integer, null: false, default: 0
|
||||
add :mpr, :integer, null: false, default: 0
|
||||
add :incskill, :integer, null: false, default: -1
|
||||
add :charmexp, :integer, null: false, default: -1
|
||||
add :pvpdamage, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create index(:inventoryequipment, [:inventoryitemid])
|
||||
|
||||
create table(:inventoryslot) do
|
||||
add :characterid, :integer, unique: true
|
||||
add :equip, :integer
|
||||
add :use, :integer
|
||||
add :setup, :integer
|
||||
add :etc, :integer
|
||||
add :cash, :integer
|
||||
end
|
||||
|
||||
create unique_index(:inventoryslot, [:characterid])
|
||||
create index(:inventoryslot, [:id])
|
||||
|
||||
create table(:inventorylog) do
|
||||
add :inventoryitemid, :integer, null: false, default: 0
|
||||
add :msg, :string, size: 255, null: false
|
||||
end
|
||||
|
||||
create index(:inventorylog, [:inventoryitemid])
|
||||
|
||||
create table(:extendedslots) do
|
||||
add :characterid, :integer, null: false, default: 0
|
||||
add :itemid, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
# ============================================================================
|
||||
# SKILLS & KEYMAP TABLES
|
||||
# ============================================================================
|
||||
|
||||
create table(:skills) do
|
||||
add :skillid, :integer, null: false, default: 0
|
||||
add :characterid, references(:characters, on_delete: :delete_all), null: false, default: 0
|
||||
add :skilllevel, :integer, null: false, default: 0
|
||||
add :masterlevel, :integer, null: false, default: 0
|
||||
add :expiration, :bigint, null: false, default: -1
|
||||
end
|
||||
|
||||
create index(:skills, [:characterid], name: :skills_ibfk_1)
|
||||
|
||||
create table(:skills_cooldowns) do
|
||||
add :charid, :integer, null: false
|
||||
add :skillid, :integer, null: false
|
||||
add :length, :bigint, null: false
|
||||
add :starttime, :bigint, null: false
|
||||
end
|
||||
|
||||
create index(:skills_cooldowns, [:charid])
|
||||
|
||||
create table(:keymap) do
|
||||
add :characterid, references(:characters, on_delete: :delete_all), null: false, default: 0
|
||||
add :key, :integer, null: false, default: 0
|
||||
add :type, :integer, null: false, default: 0
|
||||
add :action, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create index(:keymap, [:characterid], name: :keymap_ibfk_1)
|
||||
|
||||
create table(:skillmacros) do
|
||||
add :characterid, :integer, null: false, default: 0
|
||||
add :position, :integer, null: false, default: 0
|
||||
add :skill1, :integer, null: false, default: 0
|
||||
add :skill2, :integer, null: false, default: 0
|
||||
add :skill3, :integer, null: false, default: 0
|
||||
add :name, :string, size: 30
|
||||
add :shout, :boolean, null: false, default: false
|
||||
end
|
||||
|
||||
create index(:skillmacros, [:characterid])
|
||||
|
||||
# ============================================================================
|
||||
# BUDDY SYSTEM
|
||||
# ============================================================================
|
||||
|
||||
create table(:buddies) do
|
||||
add :characterid, references(:characters, on_delete: :delete_all), null: false
|
||||
add :buddyid, :integer, null: false
|
||||
add :pending, :boolean, null: false, default: false
|
||||
add :groupname, :string, size: 16, null: false, default: "ETC"
|
||||
end
|
||||
|
||||
create index(:buddies, [:characterid], name: :buddies_ibfk_1)
|
||||
create index(:buddies, [:buddyid])
|
||||
create index(:buddies, [:id])
|
||||
|
||||
# ============================================================================
|
||||
# GUILD SYSTEM
|
||||
# ============================================================================
|
||||
|
||||
create table(:guilds) do
|
||||
add :leader, :integer, null: false, default: 0
|
||||
add :gp, :integer, null: false, default: 0
|
||||
add :logo, :integer
|
||||
add :logocolor, :integer, null: false, default: 0
|
||||
add :name, :string, size: 45, null: false
|
||||
add :rank1title, :string, size: 45, null: false, default: "Master"
|
||||
add :rank2title, :string, size: 45, null: false, default: "Jr. Master"
|
||||
add :rank3title, :string, size: 45, null: false, default: "Member"
|
||||
add :rank4title, :string, size: 45, null: false, default: "Member"
|
||||
add :rank5title, :string, size: 45, null: false, default: "Member"
|
||||
add :capacity, :integer, null: false, default: 10
|
||||
add :logobg, :integer
|
||||
add :logobgcolor, :integer, null: false, default: 0
|
||||
add :notice, :string, size: 101
|
||||
add :signature, :integer, null: false, default: 0
|
||||
add :alliance, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create unique_index(:guilds, [:name])
|
||||
create index(:guilds, [:id])
|
||||
create index(:guilds, [:leader])
|
||||
|
||||
create table(:guildskills) do
|
||||
add :guildid, :integer, null: false, default: 0
|
||||
add :skillid, :integer, null: false, default: 0
|
||||
add :level, :integer, null: false, default: 1
|
||||
add :timestamp, :bigint, null: false, default: 0
|
||||
add :purchaser, :string, size: 13, null: false, default: ""
|
||||
end
|
||||
|
||||
create table(:alliances) do
|
||||
add :name, :string, size: 13, null: false
|
||||
add :leaderid, :integer, null: false
|
||||
add :guild1, :integer, null: false
|
||||
add :guild2, :integer, null: false
|
||||
add :guild3, :integer, null: false, default: 0
|
||||
add :guild4, :integer, null: false, default: 0
|
||||
add :guild5, :integer, null: false, default: 0
|
||||
add :rank1, :string, size: 13, null: false, default: "Master"
|
||||
add :rank2, :string, size: 13, null: false, default: "Jr.Master"
|
||||
add :rank3, :string, size: 13, null: false, default: "Member"
|
||||
add :rank4, :string, size: 13, null: false, default: "Member"
|
||||
add :rank5, :string, size: 13, null: false, default: "Member"
|
||||
add :capacity, :integer, null: false, default: 2
|
||||
add :notice, :string, size: 100, null: false, default: ""
|
||||
end
|
||||
|
||||
create unique_index(:alliances, [:name])
|
||||
create index(:alliances, [:id])
|
||||
create index(:alliances, [:leaderid])
|
||||
|
||||
create table(:bbs_threads) do
|
||||
add :postercid, :integer, null: false
|
||||
add :name, :string, size: 26, null: false, default: ""
|
||||
add :timestamp, :bigint, null: false
|
||||
add :icon, :integer, null: false
|
||||
add :startpost, :text, null: false
|
||||
add :guildid, :integer, null: false
|
||||
add :localthreadid, :integer, null: false
|
||||
end
|
||||
|
||||
create table(:bbs_replies) do
|
||||
add :threadid, :integer, null: false
|
||||
add :postercid, :integer, null: false
|
||||
add :timestamp, :bigint, null: false
|
||||
add :content, :string, size: 26, null: false, default: ""
|
||||
add :guildid, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
# ============================================================================
|
||||
# FAMILY SYSTEM
|
||||
# ============================================================================
|
||||
|
||||
create table(:families) do
|
||||
add :leaderid, :integer, null: false, default: 0
|
||||
add :notice, :string, size: 255, null: false, default: ""
|
||||
end
|
||||
|
||||
create index(:families, [:familyid])
|
||||
create index(:families, [:leaderid])
|
||||
|
||||
create table(:famelog) do
|
||||
add :characterid, references(:characters, on_delete: :delete_all), null: false, default: 0
|
||||
add :characterid_to, :integer, null: false, default: 0
|
||||
|
||||
timestamps(type: :naive_datetime, inserted_at: :when, updated_at: false)
|
||||
end
|
||||
|
||||
create index(:famelog, [:characterid])
|
||||
end
|
||||
|
||||
def down do
|
||||
# Drop in reverse order of creation to avoid foreign key constraints
|
||||
drop table(:famelog)
|
||||
drop table(:families)
|
||||
drop table(:bbs_replies)
|
||||
drop table(:bbs_threads)
|
||||
drop table(:alliances)
|
||||
drop table(:guildskills)
|
||||
drop table(:guilds)
|
||||
drop table(:buddies)
|
||||
drop table(:skillmacros)
|
||||
drop table(:keymap)
|
||||
drop table(:skills_cooldowns)
|
||||
drop table(:skills)
|
||||
drop table(:extendedslots)
|
||||
drop table(:inventorylog)
|
||||
drop table(:inventoryslot)
|
||||
drop table(:inventoryequipment)
|
||||
drop table(:inventoryitems)
|
||||
drop table(:characters)
|
||||
drop table(:storages)
|
||||
drop table(:iplog)
|
||||
drop table(:ipbans)
|
||||
drop table(:macbans)
|
||||
drop table(:macfilters)
|
||||
drop table(:character_slots)
|
||||
drop table(:accounts)
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,332 @@
|
||||
defmodule Odinsea.Repo.Migrations.CreateCharacterRelatedTables do
|
||||
use Ecto.Migration
|
||||
|
||||
def up do
|
||||
# ============================================================================
|
||||
# QUEST SYSTEM
|
||||
# ============================================================================
|
||||
|
||||
create table(:queststatus) do
|
||||
add :characterid, references(:characters, on_delete: :delete_all), null: false, default: 0
|
||||
add :quest, :integer, null: false, default: 0
|
||||
add :status, :integer, null: false, default: 0
|
||||
add :time, :integer, null: false, default: 0
|
||||
add :forfeited, :integer, null: false, default: 0
|
||||
add :customdata, :string, size: 255
|
||||
end
|
||||
|
||||
create index(:queststatus, [:characterid])
|
||||
create index(:queststatus, [:queststatusid])
|
||||
|
||||
create table(:queststatusmobs) do
|
||||
add :queststatusid, references(:queststatus, on_delete: :delete_all), null: false, default: 0
|
||||
add :mob, :integer, null: false, default: 0
|
||||
add :count, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create index(:queststatusmobs, [:queststatusid])
|
||||
|
||||
create table(:questinfo) do
|
||||
add :characterid, references(:characters, on_delete: :delete_all), null: false, default: 0
|
||||
add :quest, :integer, null: false, default: 0
|
||||
add :customdata, :string, size: 555
|
||||
end
|
||||
|
||||
create index(:questinfo, [:characterid])
|
||||
|
||||
# ============================================================================
|
||||
# PETS & FAMILIARS
|
||||
# ============================================================================
|
||||
|
||||
create table(:pets) do
|
||||
add :name, :string, size: 13
|
||||
add :level, :integer, null: false
|
||||
add :closeness, :integer, null: false
|
||||
add :fullness, :integer, null: false
|
||||
add :seconds, :integer, null: false, default: 0
|
||||
add :flags, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create index(:pets, [:petid])
|
||||
|
||||
create table(:familiars) do
|
||||
add :characterid, :integer, null: false, default: 0
|
||||
add :familiar, :integer, null: false, default: 0
|
||||
add :name, :string, size: 40, null: false, default: ""
|
||||
add :fatigue, :integer, null: false, default: 0
|
||||
add :expiry, :bigint, null: false, default: 0
|
||||
add :vitality, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create table(:imps) do
|
||||
add :characterid, :integer, null: false, default: 0
|
||||
add :itemid, :integer, null: false, default: 0
|
||||
add :level, :integer, null: false, default: 1
|
||||
add :state, :integer, null: false, default: 1
|
||||
add :closeness, :integer, null: false, default: 0
|
||||
add :fullness, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create index(:imps, [:impid])
|
||||
|
||||
# ============================================================================
|
||||
# MOUNT & TRANSPORT
|
||||
# ============================================================================
|
||||
|
||||
create table(:mountdata) do
|
||||
add :characterid, :integer, unique: true
|
||||
add :level, :integer, null: false, default: 0
|
||||
add :exp, :integer, null: false, default: 0
|
||||
add :fatigue, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create unique_index(:mountdata, [:characterid])
|
||||
create index(:mountdata, [:id])
|
||||
|
||||
create table(:trocklocations) do
|
||||
add :characterid, :integer
|
||||
add :mapid, :integer
|
||||
end
|
||||
|
||||
create index(:trocklocations, [:characterid])
|
||||
|
||||
create table(:regrocklocations) do
|
||||
add :characterid, :integer
|
||||
add :mapid, :integer
|
||||
end
|
||||
|
||||
create index(:regrocklocations, [:characterid])
|
||||
|
||||
create table(:hyperrocklocations) do
|
||||
add :characterid, :integer
|
||||
add :mapid, :integer
|
||||
end
|
||||
|
||||
# ============================================================================
|
||||
# MONSTER BOOK
|
||||
# ============================================================================
|
||||
|
||||
create table(:monsterbook) do
|
||||
add :charid, :integer, null: false, default: 0
|
||||
add :cardid, :integer, null: false, default: 0
|
||||
add :level, :integer, default: 1
|
||||
end
|
||||
|
||||
create index(:monsterbook, [:id])
|
||||
create index(:monsterbook, [:charid])
|
||||
|
||||
# ============================================================================
|
||||
# SAVED LOCATIONS
|
||||
# ============================================================================
|
||||
|
||||
create table(:savedlocations) do
|
||||
add :characterid, references(:characters, on_delete: :delete_all), null: false
|
||||
add :locationtype, :integer, null: false, default: 0
|
||||
add :map, :integer, null: false
|
||||
end
|
||||
|
||||
create index(:savedlocations, [:characterid], name: :savedlocations_ibfk_1)
|
||||
|
||||
# ============================================================================
|
||||
# ACHIEVEMENTS & REPORTS
|
||||
# ============================================================================
|
||||
|
||||
create table(:achievements) do
|
||||
add :achievementid, :integer, null: false, default: 0
|
||||
add :charid, :integer, null: false, default: 0
|
||||
add :accountid, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create unique_index(:achievements, [:achievementid, :charid], name: :achievements_pkey)
|
||||
create index(:achievements, [:achievementid])
|
||||
create index(:achievements, [:accountid])
|
||||
create index(:achievements, [:charid])
|
||||
|
||||
create table(:reports) do
|
||||
add :characterid, :integer, null: false, default: 0
|
||||
add :type, :integer, null: false, default: 0
|
||||
add :count, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create index(:reports, [:characterid])
|
||||
|
||||
# ============================================================================
|
||||
# NOTES & MESSAGING
|
||||
# ============================================================================
|
||||
|
||||
create table(:notes) do
|
||||
add :to, :string, size: 13, null: false, default: ""
|
||||
add :from, :string, size: 13, null: false, default: ""
|
||||
add :message, :text, null: false
|
||||
add :timestamp, :bigint, null: false
|
||||
add :gift, :boolean, null: false, default: false
|
||||
end
|
||||
|
||||
create index(:notes, [:to])
|
||||
|
||||
# ============================================================================
|
||||
# RINGS & MARRIAGE
|
||||
# ============================================================================
|
||||
|
||||
create table(:rings) do
|
||||
add :partnerringid, :integer, null: false, default: 0
|
||||
add :partnerchrid, :integer, null: false, default: 0
|
||||
add :itemid, :integer, null: false, default: 0
|
||||
add :partnername, :string, size: 255, null: false
|
||||
end
|
||||
|
||||
create index(:rings, [:ringid])
|
||||
create index(:rings, [:partnerchrid])
|
||||
create index(:rings, [:partnerringid])
|
||||
|
||||
# ============================================================================
|
||||
# SIDEKICKS
|
||||
# ============================================================================
|
||||
|
||||
create table(:sidekicks) do
|
||||
add :firstid, :integer, null: false, default: 0
|
||||
add :secondid, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
# ============================================================================
|
||||
# BATTLE & TOURNAMENT
|
||||
# ============================================================================
|
||||
|
||||
create table(:battlelog) do
|
||||
add :accid, references(:accounts, on_delete: :delete_all), null: false, default: 0
|
||||
add :accid_to, :integer, null: false, default: 0
|
||||
|
||||
timestamps(type: :naive_datetime, inserted_at: :when, updated_at: false)
|
||||
end
|
||||
|
||||
create index(:battlelog, [:accid])
|
||||
|
||||
create table(:tournamentlog) do
|
||||
add :winnerid, :integer, null: false, default: 0
|
||||
add :numcontestants, :integer, null: false, default: 0
|
||||
|
||||
timestamps(type: :naive_datetime, inserted_at: :when, updated_at: false)
|
||||
end
|
||||
|
||||
create table(:speedruns) do
|
||||
add :type, :string, size: 13, null: false
|
||||
add :leader, :string, size: 13, null: false
|
||||
add :timestring, :string, size: 1024, null: false
|
||||
add :time, :bigint, null: false, default: 0
|
||||
add :members, :string, size: 1024, null: false, default: ""
|
||||
end
|
||||
|
||||
# ============================================================================
|
||||
# PLAYER NPCS
|
||||
# ============================================================================
|
||||
|
||||
create table(:playernpcs) do
|
||||
add :name, :string, size: 13, null: false
|
||||
add :hair, :integer, null: false
|
||||
add :face, :integer, null: false
|
||||
add :skin, :integer, null: false
|
||||
add :x, :integer, null: false, default: 0
|
||||
add :y, :integer, null: false, default: 0
|
||||
add :map, :integer, null: false
|
||||
add :charid, references(:characters, on_delete: :delete_all), null: false
|
||||
add :scriptid, :integer, null: false
|
||||
add :foothold, :integer, null: false
|
||||
add :dir, :integer, null: false, default: 0
|
||||
add :gender, :integer, null: false, default: 0
|
||||
add :pets, :string, size: 25, default: "0,0,0"
|
||||
end
|
||||
|
||||
create index(:playernpcs, [:scriptid])
|
||||
create index(:playernpcs, [:charid], name: :playernpcs_ibfk_1)
|
||||
|
||||
create table(:playernpcs_equip) do
|
||||
add :npcid, references(:playernpcs, column: :scriptid, on_delete: :delete_all), null: false
|
||||
add :equipid, :integer, null: false
|
||||
add :equippos, :integer, null: false
|
||||
add :charid, references(:characters, on_delete: :delete_all), null: false
|
||||
end
|
||||
|
||||
create index(:playernpcs_equip, [:charid], name: :playernpcs_equip_ibfk_1)
|
||||
create index(:playernpcs_equip, [:npcid], name: :playernpcs_equip_ibfk_2)
|
||||
|
||||
# ============================================================================
|
||||
# POKEMON SYSTEM
|
||||
# ============================================================================
|
||||
|
||||
create table(:pokemon) do
|
||||
add :monsterid, :integer, null: false, default: 0
|
||||
add :characterid, :integer, null: false, default: 0
|
||||
add :level, :integer, null: false, default: 1
|
||||
add :exp, :integer, null: false, default: 0
|
||||
add :name, :string, size: 255, null: false, default: ""
|
||||
add :nature, :integer, null: false, default: 0
|
||||
add :active, :boolean, null: false, default: false
|
||||
add :accountid, :integer, null: false, default: 0
|
||||
add :itemid, :integer, null: false, default: 0
|
||||
add :gender, :integer, null: false, default: -1
|
||||
add :hpiv, :integer, null: false, default: -1
|
||||
add :atkiv, :integer, null: false, default: -1
|
||||
add :defiv, :integer, null: false, default: -1
|
||||
add :spatkiv, :integer, null: false, default: -1
|
||||
add :spdefiv, :integer, null: false, default: -1
|
||||
add :speediv, :integer, null: false, default: -1
|
||||
add :evaiv, :integer, null: false, default: -1
|
||||
add :acciv, :integer, null: false, default: -1
|
||||
add :ability, :integer, null: false, default: -1
|
||||
end
|
||||
|
||||
create index(:pokemon, [:id])
|
||||
create index(:pokemon, [:characterid])
|
||||
|
||||
# ============================================================================
|
||||
# ANDROID SYSTEM
|
||||
# ============================================================================
|
||||
|
||||
create table(:androids) do
|
||||
add :name, :string, size: 13, null: false, default: "Android"
|
||||
add :hair, :integer, null: false, default: 0
|
||||
add :face, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create index(:androids, [:uniqueid])
|
||||
|
||||
# ============================================================================
|
||||
# WISHLIST
|
||||
# ============================================================================
|
||||
|
||||
create table(:wishlist) do
|
||||
add :characterid, :integer, null: false, primary_key: true
|
||||
add :sn, :integer, null: false, primary_key: true
|
||||
end
|
||||
|
||||
create index(:wishlist, [:characterid])
|
||||
end
|
||||
|
||||
def down do
|
||||
drop table(:wishlist)
|
||||
drop table(:androids)
|
||||
drop table(:pokemon)
|
||||
drop table(:playernpcs_equip)
|
||||
drop table(:playernpcs)
|
||||
drop table(:speedruns)
|
||||
drop table(:tournamentlog)
|
||||
drop table(:battlelog)
|
||||
drop table(:sidekicks)
|
||||
drop table(:rings)
|
||||
drop table(:notes)
|
||||
drop table(:reports)
|
||||
drop table(:achievements)
|
||||
drop table(:savedlocations)
|
||||
drop table(:monsterbook)
|
||||
drop table(:hyperrocklocations)
|
||||
drop table(:regrocklocations)
|
||||
drop table(:trocklocations)
|
||||
drop table(:mountdata)
|
||||
drop table(:imps)
|
||||
drop table(:familiars)
|
||||
drop table(:pets)
|
||||
drop table(:questinfo)
|
||||
drop table(:queststatusmobs)
|
||||
drop table(:queststatus)
|
||||
end
|
||||
end
|
||||
129
priv/repo/migrations/20260215000003_create_cashshop_tables.exs
Normal file
129
priv/repo/migrations/20260215000003_create_cashshop_tables.exs
Normal file
@@ -0,0 +1,129 @@
|
||||
defmodule Odinsea.Repo.Migrations.CreateCashshopTables do
|
||||
use Ecto.Migration
|
||||
|
||||
def up do
|
||||
# ============================================================================
|
||||
# CASH SHOP ITEMS
|
||||
# ============================================================================
|
||||
|
||||
create table(:csitems) do
|
||||
add :characterid, :integer
|
||||
add :accountid, :integer
|
||||
add :packageid, :integer
|
||||
add :itemid, :integer, null: false, default: 0
|
||||
add :inventorytype, :integer, null: false, default: 0
|
||||
add :position, :integer, null: false, default: 0
|
||||
add :quantity, :integer, null: false, default: 0
|
||||
add :owner, :string, size: 255
|
||||
add :gm_log, :string, size: 255
|
||||
add :uniqueid, :integer, null: false, default: -1
|
||||
add :flag, :integer, null: false, default: 0
|
||||
add :expiredate, :bigint, null: false, default: -1
|
||||
add :type, :integer, null: false, default: 0
|
||||
add :sender, :string, size: 13, null: false, default: ""
|
||||
end
|
||||
|
||||
create index(:csitems, [:characterid], name: :csitems_characterid_index)
|
||||
create index(:csitems, [:inventorytype])
|
||||
create index(:csitems, [:accountid])
|
||||
create index(:csitems, [:packageid])
|
||||
create index(:csitems, [:characterid, :inventorytype], name: :csitems_characterid_2_index)
|
||||
|
||||
create table(:csequipment) do
|
||||
add :inventoryitemid, references(:csitems, on_delete: :delete_all), null: false, default: 0
|
||||
add :upgradeslots, :integer, null: false, default: 0
|
||||
add :level, :integer, null: false, default: 0
|
||||
add :str, :integer, null: false, default: 0
|
||||
add :dex, :integer, null: false, default: 0
|
||||
add :int, :integer, null: false, default: 0
|
||||
add :luk, :integer, null: false, default: 0
|
||||
add :hp, :integer, null: false, default: 0
|
||||
add :mp, :integer, null: false, default: 0
|
||||
add :watk, :integer, null: false, default: 0
|
||||
add :matk, :integer, null: false, default: 0
|
||||
add :wdef, :integer, null: false, default: 0
|
||||
add :mdef, :integer, null: false, default: 0
|
||||
add :acc, :integer, null: false, default: 0
|
||||
add :avoid, :integer, null: false, default: 0
|
||||
add :hands, :integer, null: false, default: 0
|
||||
add :speed, :integer, null: false, default: 0
|
||||
add :jump, :integer, null: false, default: 0
|
||||
add :vicioushammer, :integer, null: false, default: 0
|
||||
add :itemexp, :integer, null: false, default: 0
|
||||
add :durability, :integer, null: false, default: -1
|
||||
add :enhance, :integer, null: false, default: 0
|
||||
add :potential1, :integer, null: false, default: 0
|
||||
add :potential2, :integer, null: false, default: 0
|
||||
add :potential3, :integer, null: false, default: 0
|
||||
add :hpr, :integer, null: false, default: 0
|
||||
add :mpr, :integer, null: false, default: 0
|
||||
add :incskill, :integer, null: false, default: -1
|
||||
add :charmexp, :integer, null: false, default: -1
|
||||
add :pvpdamage, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create index(:csequipment, [:inventoryitemid])
|
||||
|
||||
# ============================================================================
|
||||
# CASH SHOP GIFTS
|
||||
# ============================================================================
|
||||
|
||||
create table(:gifts) do
|
||||
add :recipient, :integer, null: false, default: 0
|
||||
add :from, :string, size: 13, null: false, default: ""
|
||||
add :message, :string, size: 255, null: false, default: ""
|
||||
add :sn, :integer, null: false, default: 0
|
||||
add :uniqueid, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create index(:gifts, [:recipient])
|
||||
|
||||
# ============================================================================
|
||||
# CASH SHOP CONFIGURATION
|
||||
# ============================================================================
|
||||
|
||||
create table(:cashshop_modified_items) do
|
||||
add :serial, :integer, null: false, primary_key: true
|
||||
add :discount_price, :integer, null: false, default: -1
|
||||
add :mark, :integer, null: false, default: -1
|
||||
add :showup, :boolean, null: false, default: false
|
||||
add :itemid, :integer, null: false, default: 0
|
||||
add :priority, :integer, null: false, default: 0
|
||||
add :package, :boolean, null: false, default: false
|
||||
add :period, :integer, null: false, default: 0
|
||||
add :gender, :integer, null: false, default: 0
|
||||
add :count, :integer, null: false, default: 0
|
||||
add :meso, :integer, null: false, default: 0
|
||||
add :unk_1, :boolean, null: false, default: false
|
||||
add :unk_2, :boolean, null: false, default: false
|
||||
add :unk_3, :boolean, null: false, default: false
|
||||
add :extra_flags, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create table(:cashshop_limit_sell) do
|
||||
add :serial, :integer, null: false, primary_key: true
|
||||
add :amount, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
# ============================================================================
|
||||
# NX CODES
|
||||
# ============================================================================
|
||||
|
||||
create table(:nxcode) do
|
||||
add :code, :string, size: 15, null: false, primary_key: true
|
||||
add :valid, :integer, null: false, default: 1
|
||||
add :user, :string, size: 13
|
||||
add :type, :integer, null: false, default: 0
|
||||
add :item, :integer, null: false, default: 10000
|
||||
end
|
||||
end
|
||||
|
||||
def down do
|
||||
drop table(:nxcode)
|
||||
drop table(:cashshop_limit_sell)
|
||||
drop table(:cashshop_modified_items)
|
||||
drop table(:gifts)
|
||||
drop table(:csequipment)
|
||||
drop table(:csitems)
|
||||
end
|
||||
end
|
||||
86
priv/repo/migrations/20260215000004_create_duey_tables.exs
Normal file
86
priv/repo/migrations/20260215000004_create_duey_tables.exs
Normal file
@@ -0,0 +1,86 @@
|
||||
defmodule Odinsea.Repo.Migrations.CreateDueyTables do
|
||||
use Ecto.Migration
|
||||
|
||||
def up do
|
||||
# ============================================================================
|
||||
# DUEY PACKAGES (DELIVERY SYSTEM)
|
||||
# ============================================================================
|
||||
|
||||
create table(:dueypackages) do
|
||||
add :recieverid, :integer, null: false
|
||||
add :sendername, :string, size: 13, null: false
|
||||
add :mesos, :integer, default: 0
|
||||
add :timestamp, :bigint
|
||||
add :checked, :boolean, default: true
|
||||
add :type, :integer, null: false
|
||||
end
|
||||
|
||||
# ============================================================================
|
||||
# DUEY ITEMS
|
||||
# ============================================================================
|
||||
|
||||
create table(:dueyitems) do
|
||||
add :characterid, :integer
|
||||
add :accountid, :integer
|
||||
add :packageid, :integer
|
||||
add :itemid, :integer, null: false, default: 0
|
||||
add :inventorytype, :integer, null: false, default: 0
|
||||
add :position, :integer, null: false, default: 0
|
||||
add :quantity, :integer, null: false, default: 0
|
||||
add :owner, :string, size: 255
|
||||
add :gm_log, :string, size: 255
|
||||
add :uniqueid, :integer, null: false, default: -1
|
||||
add :flag, :integer, null: false, default: 0
|
||||
add :expiredate, :bigint, null: false, default: -1
|
||||
add :type, :integer, null: false, default: 0
|
||||
add :sender, :string, size: 13, null: false, default: ""
|
||||
end
|
||||
|
||||
create index(:dueyitems, [:characterid], name: :dueyitems_characterid_index)
|
||||
create index(:dueyitems, [:inventorytype])
|
||||
create index(:dueyitems, [:accountid])
|
||||
create index(:dueyitems, [:packageid])
|
||||
create index(:dueyitems, [:characterid, :inventorytype], name: :dueyitems_characterid_2_index)
|
||||
|
||||
create table(:dueyequipment) do
|
||||
add :inventoryitemid, references(:dueyitems, on_delete: :delete_all), null: false, default: 0
|
||||
add :upgradeslots, :integer, null: false, default: 0
|
||||
add :level, :integer, null: false, default: 0
|
||||
add :str, :integer, null: false, default: 0
|
||||
add :dex, :integer, null: false, default: 0
|
||||
add :int, :integer, null: false, default: 0
|
||||
add :luk, :integer, null: false, default: 0
|
||||
add :hp, :integer, null: false, default: 0
|
||||
add :mp, :integer, null: false, default: 0
|
||||
add :watk, :integer, null: false, default: 0
|
||||
add :matk, :integer, null: false, default: 0
|
||||
add :wdef, :integer, null: false, default: 0
|
||||
add :mdef, :integer, null: false, default: 0
|
||||
add :acc, :integer, null: false, default: 0
|
||||
add :avoid, :integer, null: false, default: 0
|
||||
add :hands, :integer, null: false, default: 0
|
||||
add :speed, :integer, null: false, default: 0
|
||||
add :jump, :integer, null: false, default: 0
|
||||
add :vicioushammer, :integer, null: false, default: 0
|
||||
add :itemexp, :integer, null: false, default: 0
|
||||
add :durability, :integer, null: false, default: -1
|
||||
add :enhance, :integer, null: false, default: 0
|
||||
add :potential1, :integer, null: false, default: 0
|
||||
add :potential2, :integer, null: false, default: 0
|
||||
add :potential3, :integer, null: false, default: 0
|
||||
add :hpr, :integer, null: false, default: 0
|
||||
add :mpr, :integer, null: false, default: 0
|
||||
add :incskill, :integer, null: false, default: -1
|
||||
add :charmexp, :integer, null: false, default: -1
|
||||
add :pvpdamage, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create index(:dueyequipment, [:inventoryitemid])
|
||||
end
|
||||
|
||||
def down do
|
||||
drop table(:dueyequipment)
|
||||
drop table(:dueyitems)
|
||||
drop table(:dueypackages)
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,84 @@
|
||||
defmodule Odinsea.Repo.Migrations.CreateHiredmerchTables do
|
||||
use Ecto.Migration
|
||||
|
||||
def up do
|
||||
# ============================================================================
|
||||
# HIRED MERCHANT (PLAYER SHOP)
|
||||
# ============================================================================
|
||||
|
||||
create table(:hiredmerch) do
|
||||
add :characterid, :integer, default: 0
|
||||
add :accountid, :integer
|
||||
add :mesos, :integer, default: 0
|
||||
add :time, :bigint
|
||||
end
|
||||
|
||||
# ============================================================================
|
||||
# HIRED MERCHANT ITEMS
|
||||
# ============================================================================
|
||||
|
||||
create table(:hiredmerchitems) do
|
||||
add :characterid, :integer
|
||||
add :accountid, :integer
|
||||
add :packageid, :integer
|
||||
add :itemid, :integer, null: false, default: 0
|
||||
add :inventorytype, :integer, null: false, default: 0
|
||||
add :position, :integer, null: false, default: 0
|
||||
add :quantity, :integer, null: false, default: 0
|
||||
add :owner, :string, size: 255
|
||||
add :gm_log, :string, size: 255
|
||||
add :uniqueid, :integer, null: false, default: -1
|
||||
add :flag, :integer, null: false, default: 0
|
||||
add :expiredate, :bigint, null: false, default: -1
|
||||
add :type, :integer, null: false, default: 0
|
||||
add :sender, :string, size: 13, null: false, default: ""
|
||||
end
|
||||
|
||||
create index(:hiredmerchitems, [:characterid], name: :hiredmerchitems_characterid_index)
|
||||
create index(:hiredmerchitems, [:inventorytype])
|
||||
create index(:hiredmerchitems, [:accountid])
|
||||
create index(:hiredmerchitems, [:packageid])
|
||||
create index(:hiredmerchitems, [:characterid, :inventorytype], name: :hiredmerchitems_characterid_2_index)
|
||||
|
||||
create table(:hiredmerchequipment) do
|
||||
add :inventoryitemid, references(:hiredmerchitems, on_delete: :delete_all), null: false, default: 0
|
||||
add :upgradeslots, :integer, null: false, default: 0
|
||||
add :level, :integer, null: false, default: 0
|
||||
add :str, :integer, null: false, default: 0
|
||||
add :dex, :integer, null: false, default: 0
|
||||
add :int, :integer, null: false, default: 0
|
||||
add :luk, :integer, null: false, default: 0
|
||||
add :hp, :integer, null: false, default: 0
|
||||
add :mp, :integer, null: false, default: 0
|
||||
add :watk, :integer, null: false, default: 0
|
||||
add :matk, :integer, null: false, default: 0
|
||||
add :wdef, :integer, null: false, default: 0
|
||||
add :mdef, :integer, null: false, default: 0
|
||||
add :acc, :integer, null: false, default: 0
|
||||
add :avoid, :integer, null: false, default: 0
|
||||
add :hands, :integer, null: false, default: 0
|
||||
add :speed, :integer, null: false, default: 0
|
||||
add :jump, :integer, null: false, default: 0
|
||||
add :vicioushammer, :integer, null: false, default: 0
|
||||
add :itemexp, :integer, null: false, default: 0
|
||||
add :durability, :integer, null: false, default: -1
|
||||
add :enhance, :integer, null: false, default: 0
|
||||
add :potential1, :integer, null: false, default: 0
|
||||
add :potential2, :integer, null: false, default: 0
|
||||
add :potential3, :integer, null: false, default: 0
|
||||
add :hpr, :integer, null: false, default: 0
|
||||
add :mpr, :integer, null: false, default: 0
|
||||
add :incskill, :integer, null: false, default: -1
|
||||
add :charmexp, :integer, null: false, default: -1
|
||||
add :pvpdamage, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create index(:hiredmerchequipment, [:inventoryitemid])
|
||||
end
|
||||
|
||||
def down do
|
||||
drop table(:hiredmerchequipment)
|
||||
drop table(:hiredmerchitems)
|
||||
drop table(:hiredmerch)
|
||||
end
|
||||
end
|
||||
162
priv/repo/migrations/20260215000006_create_mts_tables.exs
Normal file
162
priv/repo/migrations/20260215000006_create_mts_tables.exs
Normal file
@@ -0,0 +1,162 @@
|
||||
defmodule Odinsea.Repo.Migrations.CreateMtsTables do
|
||||
use Ecto.Migration
|
||||
|
||||
def up do
|
||||
# ============================================================================
|
||||
# MTS CART
|
||||
# ============================================================================
|
||||
|
||||
create table(:mts_cart) do
|
||||
add :characterid, :integer, null: false, default: 0
|
||||
add :itemid, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create index(:mts_cart, [:characterid])
|
||||
create index(:mts_cart, [:id])
|
||||
|
||||
# ============================================================================
|
||||
# MTS ITEMS (LISTED FOR SALE)
|
||||
# ============================================================================
|
||||
|
||||
create table(:mts_items) do
|
||||
add :tab, :integer, null: false, default: 1
|
||||
add :price, :integer, null: false, default: 0
|
||||
add :characterid, :integer, null: false, default: 0
|
||||
add :seller, :string, size: 13, null: false, default: ""
|
||||
add :expiration, :bigint, null: false, default: 0
|
||||
end
|
||||
|
||||
# ============================================================================
|
||||
# MTS INVENTORY ITEMS
|
||||
# ============================================================================
|
||||
|
||||
create table(:mtsitems) do
|
||||
add :characterid, :integer
|
||||
add :accountid, :integer
|
||||
add :packageid, :integer
|
||||
add :itemid, :integer, null: false, default: 0
|
||||
add :inventorytype, :integer, null: false, default: 0
|
||||
add :position, :integer, null: false, default: 0
|
||||
add :quantity, :integer, null: false, default: 0
|
||||
add :owner, :string, size: 255
|
||||
add :gm_log, :string, size: 255
|
||||
add :uniqueid, :integer, null: false, default: -1
|
||||
add :flag, :integer, null: false, default: 0
|
||||
add :expiredate, :bigint, null: false, default: -1
|
||||
add :type, :integer, null: false, default: 0
|
||||
add :sender, :string, size: 13, null: false, default: ""
|
||||
end
|
||||
|
||||
create index(:mtsitems, [:characterid], name: :mtsitems_characterid_index)
|
||||
create index(:mtsitems, [:inventorytype])
|
||||
create index(:mtsitems, [:accountid])
|
||||
create index(:mtsitems, [:characterid, :inventorytype], name: :mtsitems_characterid_2_index)
|
||||
create index(:mtsitems, [:packageid])
|
||||
|
||||
create table(:mtsequipment) do
|
||||
add :inventoryitemid, references(:mtsitems, on_delete: :delete_all), null: false, default: 0
|
||||
add :upgradeslots, :integer, null: false, default: 0
|
||||
add :level, :integer, null: false, default: 0
|
||||
add :str, :integer, null: false, default: 0
|
||||
add :dex, :integer, null: false, default: 0
|
||||
add :int, :integer, null: false, default: 0
|
||||
add :luk, :integer, null: false, default: 0
|
||||
add :hp, :integer, null: false, default: 0
|
||||
add :mp, :integer, null: false, default: 0
|
||||
add :watk, :integer, null: false, default: 0
|
||||
add :matk, :integer, null: false, default: 0
|
||||
add :wdef, :integer, null: false, default: 0
|
||||
add :mdef, :integer, null: false, default: 0
|
||||
add :acc, :integer, null: false, default: 0
|
||||
add :avoid, :integer, null: false, default: 0
|
||||
add :hands, :integer, null: false, default: 0
|
||||
add :speed, :integer, null: false, default: 0
|
||||
add :jump, :integer, null: false, default: 0
|
||||
add :vicioushammer, :integer, null: false, default: 0
|
||||
add :itemexp, :integer, null: false, default: 0
|
||||
add :durability, :integer, null: false, default: -1
|
||||
add :enhance, :integer, null: false, default: 0
|
||||
add :potential1, :integer, null: false, default: 0
|
||||
add :potential2, :integer, null: false, default: 0
|
||||
add :potential3, :integer, null: false, default: 0
|
||||
add :hpr, :integer, null: false, default: 0
|
||||
add :mpr, :integer, null: false, default: 0
|
||||
add :incskill, :integer, null: false, default: -1
|
||||
add :charmexp, :integer, null: false, default: -1
|
||||
add :pvpdamage, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create index(:mtsequipment, [:inventoryitemid])
|
||||
|
||||
# ============================================================================
|
||||
# MTS TRANSFER (ITEMS BEING TRANSFERRED)
|
||||
# ============================================================================
|
||||
|
||||
create table(:mtstransfer) do
|
||||
add :characterid, :integer
|
||||
add :accountid, :integer
|
||||
add :packageid, :integer
|
||||
add :itemid, :integer, null: false, default: 0
|
||||
add :inventorytype, :integer, null: false, default: 0
|
||||
add :position, :integer, null: false, default: 0
|
||||
add :quantity, :integer, null: false, default: 0
|
||||
add :owner, :string, size: 255
|
||||
add :gm_log, :string, size: 255
|
||||
add :uniqueid, :integer, null: false, default: -1
|
||||
add :flag, :integer, null: false, default: 0
|
||||
add :expiredate, :bigint, null: false, default: -1
|
||||
add :type, :integer, null: false, default: 0
|
||||
add :sender, :string, size: 13, null: false, default: ""
|
||||
end
|
||||
|
||||
create index(:mtstransfer, [:characterid], name: :mtstransfer_characterid_index)
|
||||
create index(:mtstransfer, [:inventorytype])
|
||||
create index(:mtstransfer, [:accountid])
|
||||
create index(:mtstransfer, [:packageid])
|
||||
create index(:mtstransfer, [:characterid, :inventorytype], name: :mtstransfer_characterid_2_index)
|
||||
|
||||
create table(:mtstransferequipment) do
|
||||
add :inventoryitemid, references(:mtstransfer, on_delete: :delete_all), null: false, default: 0
|
||||
add :upgradeslots, :integer, null: false, default: 0
|
||||
add :level, :integer, null: false, default: 0
|
||||
add :str, :integer, null: false, default: 0
|
||||
add :dex, :integer, null: false, default: 0
|
||||
add :int, :integer, null: false, default: 0
|
||||
add :luk, :integer, null: false, default: 0
|
||||
add :hp, :integer, null: false, default: 0
|
||||
add :mp, :integer, null: false, default: 0
|
||||
add :watk, :integer, null: false, default: 0
|
||||
add :matk, :integer, null: false, default: 0
|
||||
add :wdef, :integer, null: false, default: 0
|
||||
add :mdef, :integer, null: false, default: 0
|
||||
add :acc, :integer, null: false, default: 0
|
||||
add :avoid, :integer, null: false, default: 0
|
||||
add :hands, :integer, null: false, default: 0
|
||||
add :speed, :integer, null: false, default: 0
|
||||
add :jump, :integer, null: false, default: 0
|
||||
add :vicioushammer, :integer, null: false, default: 0
|
||||
add :itemexp, :integer, null: false, default: 0
|
||||
add :durability, :integer, null: false, default: -1
|
||||
add :enhance, :integer, null: false, default: 0
|
||||
add :potential1, :integer, null: false, default: 0
|
||||
add :potential2, :integer, null: false, default: 0
|
||||
add :potential3, :integer, null: false, default: 0
|
||||
add :hpr, :integer, null: false, default: 0
|
||||
add :mpr, :integer, null: false, default: 0
|
||||
add :incskill, :integer, null: false, default: -1
|
||||
add :charmexp, :integer, null: false, default: -1
|
||||
add :pvpdamage, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create index(:mtstransferequipment, [:inventoryitemid])
|
||||
end
|
||||
|
||||
def down do
|
||||
drop table(:mtstransferequipment)
|
||||
drop table(:mtstransfer)
|
||||
drop table(:mtsequipment)
|
||||
drop table(:mtsitems)
|
||||
drop table(:mts_items)
|
||||
drop table(:mts_cart)
|
||||
end
|
||||
end
|
||||
255
priv/repo/migrations/20260215000007_create_game_data_tables.exs
Normal file
255
priv/repo/migrations/20260215000007_create_game_data_tables.exs
Normal file
@@ -0,0 +1,255 @@
|
||||
defmodule Odinsea.Repo.Migrations.CreateGameDataTables do
|
||||
use Ecto.Migration
|
||||
|
||||
def up do
|
||||
# ============================================================================
|
||||
# DROP DATA
|
||||
# ============================================================================
|
||||
|
||||
create table(:drop_data) do
|
||||
add :dropperid, :integer, null: false
|
||||
add :itemid, :integer, null: false, default: 0
|
||||
add :minimum_quantity, :integer, null: false, default: 1
|
||||
add :maximum_quantity, :integer, null: false, default: 1
|
||||
add :questid, :integer, null: false, default: 0
|
||||
add :chance, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create index(:drop_data, [:dropperid], name: :mobid)
|
||||
|
||||
create table(:drop_data_global) do
|
||||
add :continent, :integer, null: false
|
||||
add :droptype, :integer, null: false, default: 0
|
||||
add :itemid, :integer, null: false, default: 0
|
||||
add :minimum_quantity, :integer, null: false, default: 1
|
||||
add :maximum_quantity, :integer, null: false, default: 1
|
||||
add :questid, :integer, null: false, default: 0
|
||||
add :chance, :integer, null: false, default: 0
|
||||
add :comments, :string, size: 45
|
||||
end
|
||||
|
||||
create index(:drop_data_global, [:continent], name: :mobid_global)
|
||||
|
||||
create table(:reactordrops) do
|
||||
add :reactorid, :integer, null: false
|
||||
add :itemid, :integer, null: false
|
||||
add :chance, :integer, null: false
|
||||
add :questid, :integer, null: false, default: -1
|
||||
end
|
||||
|
||||
create index(:reactordrops, [:reactorid])
|
||||
|
||||
# ============================================================================
|
||||
# SHOP DATA
|
||||
# ============================================================================
|
||||
|
||||
create table(:shops) do
|
||||
add :npcid, :integer, default: 0
|
||||
end
|
||||
|
||||
create table(:shopitems) do
|
||||
add :shopid, :integer, null: false, default: 0
|
||||
add :itemid, :integer, null: false, default: 0
|
||||
add :price, :integer, null: false, default: 0
|
||||
add :position, :integer, null: false, default: 0
|
||||
add :reqitem, :integer, null: false, default: 0
|
||||
add :reqitemq, :integer, null: false, default: 0
|
||||
add :rank, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create index(:shopitems, [:shopid])
|
||||
|
||||
create table(:shopranks) do
|
||||
add :shopid, :integer, null: false, default: 0
|
||||
add :rank, :integer, null: false, default: 0
|
||||
add :name, :string, size: 255, null: false, default: ""
|
||||
add :itemid, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
# ============================================================================
|
||||
# WZ DATA TABLES (GAME DATA)
|
||||
# ============================================================================
|
||||
|
||||
create table(:wz_itemdata) do
|
||||
add :itemid, :integer, null: false, primary_key: true
|
||||
add :name, :string, size: 255
|
||||
add :msg, :string, size: 4096
|
||||
add :desc, :string, size: 4096
|
||||
add :slotmax, :integer, null: false, default: 1
|
||||
add :price, :string, size: 255, null: false, default: "-1.0"
|
||||
add :wholeprice, :integer, null: false, default: -1
|
||||
add :statechange, :integer, null: false, default: 0
|
||||
add :flags, :integer, null: false, default: 0
|
||||
add :karma, :boolean, null: false, default: false
|
||||
add :meso, :integer, null: false, default: 0
|
||||
add :monsterbook, :integer, null: false, default: 0
|
||||
add :itemmakelevel, :integer, null: false, default: 0
|
||||
add :questid, :integer, null: false, default: 0
|
||||
add :scrollreqs, :string, size: 255
|
||||
add :consumeitem, :string, size: 255
|
||||
add :totalprob, :integer, null: false, default: 0
|
||||
add :incskill, :string, size: 255, null: false, default: ""
|
||||
add :replaceid, :integer, null: false, default: 0
|
||||
add :replacemsg, :string, size: 255, null: false, default: ""
|
||||
add :create, :integer, null: false, default: 0
|
||||
add :afterimage, :string, size: 255, null: false, default: ""
|
||||
end
|
||||
|
||||
create table(:wz_itemadddata) do
|
||||
add :itemid, :integer, null: false
|
||||
add :key, :string, size: 30, null: false
|
||||
add :value1, :integer, null: false, default: 0
|
||||
add :value2, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create table(:wz_itemequipdata) do
|
||||
add :itemid, :integer, null: false
|
||||
add :itemlevel, :integer, null: false, default: -1
|
||||
add :key, :string, size: 30, null: false
|
||||
add :value, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create table(:wz_itemrewarddata) do
|
||||
add :itemid, :integer, null: false
|
||||
add :item, :integer, null: false
|
||||
add :prob, :integer, null: false, default: 0
|
||||
add :quantity, :integer, null: false, default: 0
|
||||
add :period, :integer, null: false, default: -1
|
||||
add :worldmsg, :string, size: 255, null: false, default: ""
|
||||
add :effect, :string, size: 255, null: false, default: ""
|
||||
end
|
||||
|
||||
create table(:wz_questdata) do
|
||||
add :questid, :integer, null: false, primary_key: true
|
||||
add :name, :string, size: 1024, null: false, default: ""
|
||||
add :autostart, :boolean, null: false, default: false
|
||||
add :autoprecomplete, :boolean, null: false, default: false
|
||||
add :viewmedalitem, :integer, null: false, default: 0
|
||||
add :selectedskillid, :integer, null: false, default: 0
|
||||
add :blocked, :boolean, null: false, default: false
|
||||
add :autoaccept, :boolean, null: false, default: false
|
||||
add :autocomplete, :boolean, null: false, default: false
|
||||
end
|
||||
|
||||
create table(:wz_questactdata) do
|
||||
add :questid, :integer, null: false, default: 0
|
||||
add :name, :string, size: 127, null: false, default: ""
|
||||
add :type, :integer, null: false, default: 0
|
||||
add :intstore, :integer, null: false, default: 0
|
||||
add :applicablejobs, :string, size: 1024, null: false, default: ""
|
||||
add :uniqueid, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create index(:wz_questactdata, [:questid], name: :wz_questactdata_questid_index)
|
||||
|
||||
create table(:wz_questactitemdata) do
|
||||
add :itemid, :integer, null: false, default: 0
|
||||
add :count, :integer, null: false, default: 0
|
||||
add :period, :integer, null: false, default: 0
|
||||
add :gender, :integer, null: false, default: 2
|
||||
add :job, :integer, null: false, default: -1
|
||||
add :jobex, :integer, null: false, default: -1
|
||||
add :prop, :integer, null: false, default: -1
|
||||
add :uniqueid, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create table(:wz_questactquestdata) do
|
||||
add :quest, :integer, null: false, default: 0
|
||||
add :state, :integer, null: false, default: 2
|
||||
add :uniqueid, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create table(:wz_questactskilldata) do
|
||||
add :skillid, :integer, null: false, default: 0
|
||||
add :skilllevel, :integer, null: false, default: -1
|
||||
add :masterlevel, :integer, null: false, default: -1
|
||||
add :uniqueid, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create table(:wz_questreqdata) do
|
||||
add :questid, :integer, null: false, default: 0
|
||||
add :name, :string, size: 127, null: false, default: ""
|
||||
add :type, :integer, null: false, default: 0
|
||||
add :stringstore, :string, size: 1024, null: false, default: ""
|
||||
add :intstoresfirst, :string, size: 1024, null: false, default: ""
|
||||
add :intstoressecond, :string, size: 1024, null: false, default: ""
|
||||
end
|
||||
|
||||
create index(:wz_questreqdata, [:questid], name: :wz_questreqdata_questid_index)
|
||||
|
||||
create table(:wz_questpartydata) do
|
||||
add :questid, :integer, null: false, default: 0
|
||||
add :rank, :string, size: 1, null: false, default: ""
|
||||
add :mode, :string, size: 13, null: false, default: ""
|
||||
add :property, :string, size: 255, null: false, default: ""
|
||||
add :value, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create index(:wz_questpartydata, [:questid], name: :wz_questpartydata_questid_index)
|
||||
|
||||
create table(:wz_mobskilldata) do
|
||||
add :skillid, :integer, null: false
|
||||
add :level, :integer, null: false
|
||||
add :hp, :integer, null: false, default: 100
|
||||
add :mpcon, :integer, null: false, default: 0
|
||||
add :x, :integer, null: false, default: 1
|
||||
add :y, :integer, null: false, default: 1
|
||||
add :time, :integer, null: false, default: 0
|
||||
add :prop, :integer, null: false, default: 100
|
||||
add :limit, :integer, null: false, default: 0
|
||||
add :spawneffect, :integer, null: false, default: 0
|
||||
add :interval, :integer, null: false, default: 0
|
||||
add :summons, :string, size: 1024, null: false, default: ""
|
||||
add :ltx, :integer, null: false, default: 0
|
||||
add :lty, :integer, null: false, default: 0
|
||||
add :rbx, :integer, null: false, default: 0
|
||||
add :rby, :integer, null: false, default: 0
|
||||
add :once, :boolean, null: false, default: false
|
||||
end
|
||||
|
||||
create table(:wz_oxdata) do
|
||||
add :questionset, :integer, null: false, default: 0
|
||||
add :questionid, :integer, null: false, default: 0
|
||||
add :question, :string, size: 200, null: false, default: ""
|
||||
add :display, :string, size: 200, null: false, default: ""
|
||||
add :answer, :string, size: 1, null: false
|
||||
end
|
||||
|
||||
create unique_index(:wz_oxdata, [:questionset, :questionid])
|
||||
|
||||
# ============================================================================
|
||||
# SERVER CONFIG
|
||||
# ============================================================================
|
||||
|
||||
create table(:auth_server_channel_ip) do
|
||||
add :channelid, :integer, null: false, default: 0
|
||||
add :name, :string, size: 255, null: false
|
||||
add :value, :string, size: 255, null: false
|
||||
end
|
||||
|
||||
create index(:auth_server_channel_ip, [:channelid])
|
||||
end
|
||||
|
||||
def down do
|
||||
drop table(:auth_server_channel_ip)
|
||||
drop table(:wz_oxdata)
|
||||
drop table(:wz_mobskilldata)
|
||||
drop table(:wz_questpartydata)
|
||||
drop table(:wz_questreqdata)
|
||||
drop table(:wz_questactskilldata)
|
||||
drop table(:wz_questactquestdata)
|
||||
drop table(:wz_questactitemdata)
|
||||
drop table(:wz_questactdata)
|
||||
drop table(:wz_questdata)
|
||||
drop table(:wz_itemrewarddata)
|
||||
drop table(:wz_itemequipdata)
|
||||
drop table(:wz_itemadddata)
|
||||
drop table(:wz_itemdata)
|
||||
drop table(:shopranks)
|
||||
drop table(:shopitems)
|
||||
drop table(:shops)
|
||||
drop table(:reactordrops)
|
||||
drop table(:drop_data_global)
|
||||
drop table(:drop_data)
|
||||
end
|
||||
end
|
||||
118
priv/repo/migrations/20260215000008_create_logging_tables.exs
Normal file
118
priv/repo/migrations/20260215000008_create_logging_tables.exs
Normal file
@@ -0,0 +1,118 @@
|
||||
defmodule Odinsea.Repo.Migrations.CreateLoggingTables do
|
||||
use Ecto.Migration
|
||||
|
||||
def up do
|
||||
# ============================================================================
|
||||
# CHEAT & SECURITY LOGS
|
||||
# ============================================================================
|
||||
|
||||
create table(:cheatlog) do
|
||||
add :characterid, :integer, null: false, default: 0
|
||||
add :offense, :string, size: 255, null: false
|
||||
add :count, :integer, null: false, default: 0
|
||||
add :lastoffensetime, :naive_datetime, null: false, default: fragment("CURRENT_TIMESTAMP")
|
||||
add :param, :string, size: 255, null: false
|
||||
end
|
||||
|
||||
create index(:cheatlog, [:characterid], name: :cid)
|
||||
|
||||
# ============================================================================
|
||||
# GM LOGS
|
||||
# ============================================================================
|
||||
|
||||
create table(:gmlog) do
|
||||
add :cid, :integer, null: false, default: 0
|
||||
add :command, :text, null: false
|
||||
add :mapid, :integer, null: false, default: 0
|
||||
|
||||
timestamps(type: :naive_datetime, inserted_at: :time, updated_at: false)
|
||||
end
|
||||
|
||||
create table(:internlog) do
|
||||
add :cid, :integer, null: false, default: 0
|
||||
add :command, :string, size: 255, null: false
|
||||
add :mapid, :integer, null: false, default: 0
|
||||
|
||||
timestamps(type: :naive_datetime, inserted_at: :time, updated_at: false)
|
||||
end
|
||||
|
||||
# ============================================================================
|
||||
# DONOR LOGS
|
||||
# ============================================================================
|
||||
|
||||
create table(:donorlog) do
|
||||
add :accname, :string, size: 25, null: false, default: ""
|
||||
add :accid, :integer, null: false, default: 0
|
||||
add :chrname, :string, size: 25, null: false, default: ""
|
||||
add :chrid, :integer, null: false, default: 0
|
||||
add :log, :string, size: 4096, null: false, default: ""
|
||||
add :time, :string, size: 25, null: false, default: ""
|
||||
add :previouspoints, :integer, null: false, default: 0
|
||||
add :currentpoints, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create table(:donation) do
|
||||
add :date, :naive_datetime, null: false, default: fragment("CURRENT_TIMESTAMP")
|
||||
add :ip, :string, size: 15, null: false
|
||||
add :username, :string, size: 13, null: false
|
||||
add :quantity, :integer
|
||||
add :status, :boolean, null: false, default: false
|
||||
end
|
||||
|
||||
# ============================================================================
|
||||
# OTHER LOGS
|
||||
# ============================================================================
|
||||
|
||||
create table(:scroll_log) do
|
||||
add :accid, :integer, null: false, default: 0
|
||||
add :chrid, :integer, null: false, default: 0
|
||||
add :scrollid, :integer, null: false, default: 0
|
||||
add :itemid, :integer, null: false, default: 0
|
||||
add :oldslots, :integer, null: false, default: 0
|
||||
add :newslots, :integer, null: false, default: 0
|
||||
add :hammer, :integer, null: false, default: 0
|
||||
add :result, :string, size: 13, null: false, default: ""
|
||||
add :whitescroll, :boolean, null: false, default: false
|
||||
add :legendaryspirit, :boolean, null: false, default: false
|
||||
add :vegaid, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
create table(:ipvotelog) do
|
||||
add :accid, :integer, null: false, default: 0
|
||||
add :ipaddress, :string, size: 30, null: false, default: "127.0.0.1"
|
||||
add :votetime, :bigint, null: false, default: 0
|
||||
add :votetype, :integer, null: false, default: 0
|
||||
end
|
||||
|
||||
# ============================================================================
|
||||
# COMPENSATION & CODES
|
||||
# ============================================================================
|
||||
|
||||
create table(:compensationlog_confirmed) do
|
||||
add :chrname, :string, size: 25, null: false, default: "", primary_key: true
|
||||
add :donor, :boolean, null: false, default: false
|
||||
add :value, :integer, null: false, default: 0
|
||||
add :taken, :boolean, null: false, default: false
|
||||
end
|
||||
|
||||
create table(:pwreset) do
|
||||
add :name, :string, size: 14, null: false
|
||||
add :email, :string, size: 100, null: false
|
||||
add :confirmkey, :string, size: 100, null: false
|
||||
add :status, :boolean, null: false, default: false
|
||||
add :timestamp, :string, size: 100, null: false
|
||||
end
|
||||
end
|
||||
|
||||
def down do
|
||||
drop table(:pwreset)
|
||||
drop table(:compensationlog_confirmed)
|
||||
drop table(:ipvotelog)
|
||||
drop table(:scroll_log)
|
||||
drop table(:donation)
|
||||
drop table(:donorlog)
|
||||
drop table(:internlog)
|
||||
drop table(:gmlog)
|
||||
drop table(:cheatlog)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user