port over some more

This commit is contained in:
ra
2026-02-14 23:58:01 -07:00
parent 0222be36c5
commit 61176cd416
107 changed files with 9124 additions and 375 deletions

View 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

View File

@@ -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

View 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

View 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

View File

@@ -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

View 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

View 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

View 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