mirror of
https://github.com/Walter-Sparrow/lunar-tear.git
synced 2026-07-02 05:43:41 +03:00
Add SQLite persistence, import-snapshot tool, and karma functionality
This commit is contained in:
@@ -0,0 +1,874 @@
|
||||
-- +goose Up
|
||||
|
||||
PRAGMA foreign_keys = ON;
|
||||
|
||||
-- =============================================================================
|
||||
-- 1. Identity and Sessions
|
||||
-- =============================================================================
|
||||
|
||||
CREATE TABLE users (
|
||||
user_id INTEGER PRIMARY KEY,
|
||||
uuid TEXT NOT NULL UNIQUE,
|
||||
player_id INTEGER NOT NULL DEFAULT 0,
|
||||
os_type INTEGER NOT NULL DEFAULT 0,
|
||||
platform_type INTEGER NOT NULL DEFAULT 0,
|
||||
user_restriction_type INTEGER NOT NULL DEFAULT 0,
|
||||
register_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
game_start_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
birth_year INTEGER NOT NULL DEFAULT 0,
|
||||
birth_month INTEGER NOT NULL DEFAULT 0,
|
||||
backup_token TEXT NOT NULL DEFAULT '',
|
||||
charge_money_this_month INTEGER NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
CREATE TABLE sessions (
|
||||
session_key TEXT PRIMARY KEY,
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
uuid TEXT NOT NULL,
|
||||
expire_at TEXT NOT NULL
|
||||
);
|
||||
|
||||
-- =============================================================================
|
||||
-- 1b. Per-User 1:1 State Tables
|
||||
-- =============================================================================
|
||||
|
||||
CREATE TABLE user_setting (
|
||||
user_id INTEGER PRIMARY KEY REFERENCES users(user_id),
|
||||
is_notify_purchase_alert INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
CREATE TABLE user_status (
|
||||
user_id INTEGER PRIMARY KEY REFERENCES users(user_id),
|
||||
level INTEGER NOT NULL DEFAULT 0,
|
||||
exp INTEGER NOT NULL DEFAULT 0,
|
||||
stamina_milli_value INTEGER NOT NULL DEFAULT 0,
|
||||
stamina_update_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
CREATE TABLE user_gem (
|
||||
user_id INTEGER PRIMARY KEY REFERENCES users(user_id),
|
||||
paid_gem INTEGER NOT NULL DEFAULT 0,
|
||||
free_gem INTEGER NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
CREATE TABLE user_profile (
|
||||
user_id INTEGER PRIMARY KEY REFERENCES users(user_id),
|
||||
name TEXT NOT NULL DEFAULT '',
|
||||
name_update_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
message TEXT NOT NULL DEFAULT '',
|
||||
message_update_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
favorite_costume_id INTEGER NOT NULL DEFAULT 0,
|
||||
favorite_costume_id_update_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
CREATE TABLE user_login (
|
||||
user_id INTEGER PRIMARY KEY REFERENCES users(user_id),
|
||||
total_login_count INTEGER NOT NULL DEFAULT 0,
|
||||
continual_login_count INTEGER NOT NULL DEFAULT 0,
|
||||
max_continual_login_count INTEGER NOT NULL DEFAULT 0,
|
||||
last_login_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
last_comeback_login_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
CREATE TABLE user_login_bonus (
|
||||
user_id INTEGER PRIMARY KEY REFERENCES users(user_id),
|
||||
login_bonus_id INTEGER NOT NULL DEFAULT 0,
|
||||
current_page_number INTEGER NOT NULL DEFAULT 0,
|
||||
current_stamp_number INTEGER NOT NULL DEFAULT 0,
|
||||
latest_reward_receive_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
CREATE TABLE user_main_quest (
|
||||
user_id INTEGER PRIMARY KEY REFERENCES users(user_id),
|
||||
current_quest_flow_type INTEGER NOT NULL DEFAULT 0,
|
||||
current_main_quest_route_id INTEGER NOT NULL DEFAULT 0,
|
||||
current_quest_scene_id INTEGER NOT NULL DEFAULT 0,
|
||||
head_quest_scene_id INTEGER NOT NULL DEFAULT 0,
|
||||
is_reached_last_quest_scene INTEGER NOT NULL DEFAULT 0,
|
||||
progress_quest_scene_id INTEGER NOT NULL DEFAULT 0,
|
||||
progress_head_quest_scene_id INTEGER NOT NULL DEFAULT 0,
|
||||
progress_quest_flow_type INTEGER NOT NULL DEFAULT 0,
|
||||
main_quest_season_id INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
saved_current_quest_scene_id INTEGER NOT NULL DEFAULT 0,
|
||||
saved_head_quest_scene_id INTEGER NOT NULL DEFAULT 0,
|
||||
replay_flow_current_quest_scene_id INTEGER NOT NULL DEFAULT 0,
|
||||
replay_flow_head_quest_scene_id INTEGER NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
CREATE TABLE user_event_quest (
|
||||
user_id INTEGER PRIMARY KEY REFERENCES users(user_id),
|
||||
current_event_quest_chapter_id INTEGER NOT NULL DEFAULT 0,
|
||||
current_quest_id INTEGER NOT NULL DEFAULT 0,
|
||||
current_quest_scene_id INTEGER NOT NULL DEFAULT 0,
|
||||
head_quest_scene_id INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
CREATE TABLE user_extra_quest (
|
||||
user_id INTEGER PRIMARY KEY REFERENCES users(user_id),
|
||||
current_quest_id INTEGER NOT NULL DEFAULT 0,
|
||||
current_quest_scene_id INTEGER NOT NULL DEFAULT 0,
|
||||
head_quest_scene_id INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
CREATE TABLE user_side_story_active (
|
||||
user_id INTEGER PRIMARY KEY REFERENCES users(user_id),
|
||||
current_side_story_quest_id INTEGER NOT NULL DEFAULT 0,
|
||||
current_side_story_quest_scene_id INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
CREATE TABLE user_big_hunt_state (
|
||||
user_id INTEGER PRIMARY KEY REFERENCES users(user_id),
|
||||
current_big_hunt_boss_quest_id INTEGER NOT NULL DEFAULT 0,
|
||||
current_big_hunt_quest_id INTEGER NOT NULL DEFAULT 0,
|
||||
current_quest_scene_id INTEGER NOT NULL DEFAULT 0,
|
||||
is_dry_run INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
deck_type INTEGER NOT NULL DEFAULT 0,
|
||||
user_triple_deck_number INTEGER NOT NULL DEFAULT 0,
|
||||
boss_knock_down_count INTEGER NOT NULL DEFAULT 0,
|
||||
max_combo_count INTEGER NOT NULL DEFAULT 0,
|
||||
total_damage INTEGER NOT NULL DEFAULT 0,
|
||||
deck_number INTEGER NOT NULL DEFAULT 0,
|
||||
battle_binary BLOB
|
||||
);
|
||||
|
||||
CREATE TABLE user_battle (
|
||||
user_id INTEGER PRIMARY KEY REFERENCES users(user_id),
|
||||
is_active INTEGER NOT NULL DEFAULT 0,
|
||||
start_count INTEGER NOT NULL DEFAULT 0,
|
||||
finish_count INTEGER NOT NULL DEFAULT 0,
|
||||
last_started_at INTEGER NOT NULL DEFAULT 0,
|
||||
last_finished_at INTEGER NOT NULL DEFAULT 0,
|
||||
last_user_party_count INTEGER NOT NULL DEFAULT 0,
|
||||
last_npc_party_count INTEGER NOT NULL DEFAULT 0,
|
||||
last_battle_binary_size INTEGER NOT NULL DEFAULT 0,
|
||||
last_elapsed_frame_count INTEGER NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
CREATE TABLE user_notification (
|
||||
user_id INTEGER PRIMARY KEY REFERENCES users(user_id),
|
||||
gift_not_receive_count INTEGER NOT NULL DEFAULT 0,
|
||||
friend_request_receive_count INTEGER NOT NULL DEFAULT 0,
|
||||
is_exist_unread_information INTEGER NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
CREATE TABLE user_portal_cage (
|
||||
user_id INTEGER PRIMARY KEY REFERENCES users(user_id),
|
||||
is_current_progress INTEGER NOT NULL DEFAULT 0,
|
||||
drop_item_start_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
current_drop_item_count INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
CREATE TABLE user_guerrilla_free_open (
|
||||
user_id INTEGER PRIMARY KEY REFERENCES users(user_id),
|
||||
start_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
open_minutes INTEGER NOT NULL DEFAULT 0,
|
||||
daily_opened_count INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
CREATE TABLE user_explore (
|
||||
user_id INTEGER PRIMARY KEY REFERENCES users(user_id),
|
||||
is_use_explore_ticket INTEGER NOT NULL DEFAULT 0,
|
||||
playing_explore_id INTEGER NOT NULL DEFAULT 0,
|
||||
latest_play_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
CREATE TABLE user_shop_replaceable (
|
||||
user_id INTEGER PRIMARY KEY REFERENCES users(user_id),
|
||||
lineup_update_count INTEGER NOT NULL DEFAULT 0,
|
||||
latest_lineup_update_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
CREATE TABLE user_gacha (
|
||||
user_id INTEGER PRIMARY KEY REFERENCES users(user_id),
|
||||
reward_available INTEGER NOT NULL DEFAULT 0,
|
||||
todays_current_draw_count INTEGER NOT NULL DEFAULT 0,
|
||||
daily_max_count INTEGER NOT NULL DEFAULT 0,
|
||||
last_reward_draw_date INTEGER NOT NULL DEFAULT 0,
|
||||
obtain_consumable_item_id INTEGER,
|
||||
obtain_count INTEGER
|
||||
);
|
||||
|
||||
-- =============================================================================
|
||||
-- 2. Characters and Progression
|
||||
-- =============================================================================
|
||||
|
||||
CREATE TABLE user_characters (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
character_id INTEGER NOT NULL,
|
||||
level INTEGER NOT NULL DEFAULT 0,
|
||||
exp INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, character_id)
|
||||
);
|
||||
|
||||
CREATE TABLE user_character_boards (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
character_board_id INTEGER NOT NULL,
|
||||
panel_release_bit1 INTEGER NOT NULL DEFAULT 0,
|
||||
panel_release_bit2 INTEGER NOT NULL DEFAULT 0,
|
||||
panel_release_bit3 INTEGER NOT NULL DEFAULT 0,
|
||||
panel_release_bit4 INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, character_board_id)
|
||||
);
|
||||
|
||||
CREATE TABLE user_character_board_abilities (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
character_id INTEGER NOT NULL,
|
||||
ability_id INTEGER NOT NULL,
|
||||
level INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, character_id, ability_id)
|
||||
);
|
||||
|
||||
CREATE TABLE user_character_board_status_ups (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
character_id INTEGER NOT NULL,
|
||||
status_calculation_type INTEGER NOT NULL,
|
||||
hp INTEGER NOT NULL DEFAULT 0,
|
||||
attack INTEGER NOT NULL DEFAULT 0,
|
||||
vitality INTEGER NOT NULL DEFAULT 0,
|
||||
agility INTEGER NOT NULL DEFAULT 0,
|
||||
critical_ratio INTEGER NOT NULL DEFAULT 0,
|
||||
critical_attack INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, character_id, status_calculation_type)
|
||||
);
|
||||
|
||||
CREATE TABLE user_character_rebirths (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
character_id INTEGER NOT NULL,
|
||||
rebirth_count INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, character_id)
|
||||
);
|
||||
|
||||
-- =============================================================================
|
||||
-- 3. Equipment (UUID-keyed)
|
||||
-- =============================================================================
|
||||
|
||||
CREATE TABLE user_costumes (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
user_costume_uuid TEXT NOT NULL,
|
||||
costume_id INTEGER NOT NULL,
|
||||
limit_break_count INTEGER NOT NULL DEFAULT 0,
|
||||
level INTEGER NOT NULL DEFAULT 0,
|
||||
exp INTEGER NOT NULL DEFAULT 0,
|
||||
headup_display_view_id INTEGER NOT NULL DEFAULT 0,
|
||||
acquisition_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
awaken_count INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, user_costume_uuid)
|
||||
);
|
||||
|
||||
CREATE TABLE user_costume_active_skills (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
user_costume_uuid TEXT NOT NULL,
|
||||
level INTEGER NOT NULL DEFAULT 0,
|
||||
acquisition_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, user_costume_uuid)
|
||||
);
|
||||
|
||||
CREATE TABLE user_costume_awaken_status_ups (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
user_costume_uuid TEXT NOT NULL,
|
||||
status_calculation_type INTEGER NOT NULL,
|
||||
hp INTEGER NOT NULL DEFAULT 0,
|
||||
attack INTEGER NOT NULL DEFAULT 0,
|
||||
vitality INTEGER NOT NULL DEFAULT 0,
|
||||
agility INTEGER NOT NULL DEFAULT 0,
|
||||
critical_ratio INTEGER NOT NULL DEFAULT 0,
|
||||
critical_attack INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, user_costume_uuid, status_calculation_type)
|
||||
);
|
||||
|
||||
CREATE TABLE user_weapons (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
user_weapon_uuid TEXT NOT NULL,
|
||||
weapon_id INTEGER NOT NULL,
|
||||
level INTEGER NOT NULL DEFAULT 0,
|
||||
exp INTEGER NOT NULL DEFAULT 0,
|
||||
limit_break_count INTEGER NOT NULL DEFAULT 0,
|
||||
is_protected INTEGER NOT NULL DEFAULT 0,
|
||||
acquisition_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, user_weapon_uuid)
|
||||
);
|
||||
|
||||
CREATE TABLE user_weapon_skills (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
user_weapon_uuid TEXT NOT NULL,
|
||||
slot_number INTEGER NOT NULL,
|
||||
level INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, user_weapon_uuid, slot_number)
|
||||
);
|
||||
|
||||
CREATE TABLE user_weapon_abilities (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
user_weapon_uuid TEXT NOT NULL,
|
||||
slot_number INTEGER NOT NULL,
|
||||
level INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, user_weapon_uuid, slot_number)
|
||||
);
|
||||
|
||||
CREATE TABLE user_weapon_awakens (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
user_weapon_uuid TEXT NOT NULL,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, user_weapon_uuid)
|
||||
);
|
||||
|
||||
CREATE TABLE user_weapon_stories (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
weapon_id INTEGER NOT NULL,
|
||||
released_max_story_index INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, weapon_id)
|
||||
);
|
||||
|
||||
CREATE TABLE user_weapon_notes (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
weapon_id INTEGER NOT NULL,
|
||||
max_level INTEGER NOT NULL DEFAULT 0,
|
||||
max_limit_break_count INTEGER NOT NULL DEFAULT 0,
|
||||
first_acquisition_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, weapon_id)
|
||||
);
|
||||
|
||||
CREATE TABLE user_companions (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
user_companion_uuid TEXT NOT NULL,
|
||||
companion_id INTEGER NOT NULL,
|
||||
headup_display_view_id INTEGER NOT NULL DEFAULT 0,
|
||||
level INTEGER NOT NULL DEFAULT 0,
|
||||
acquisition_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, user_companion_uuid)
|
||||
);
|
||||
|
||||
CREATE TABLE user_thoughts (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
user_thought_uuid TEXT NOT NULL,
|
||||
thought_id INTEGER NOT NULL,
|
||||
acquisition_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, user_thought_uuid)
|
||||
);
|
||||
|
||||
CREATE TABLE user_parts (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
user_parts_uuid TEXT NOT NULL,
|
||||
parts_id INTEGER NOT NULL,
|
||||
level INTEGER NOT NULL DEFAULT 0,
|
||||
parts_status_main_id INTEGER NOT NULL DEFAULT 0,
|
||||
is_protected INTEGER NOT NULL DEFAULT 0,
|
||||
acquisition_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, user_parts_uuid)
|
||||
);
|
||||
|
||||
CREATE TABLE user_parts_group_notes (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
parts_group_id INTEGER NOT NULL,
|
||||
first_acquisition_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, parts_group_id)
|
||||
);
|
||||
|
||||
CREATE TABLE user_parts_presets (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
user_parts_preset_number INTEGER NOT NULL,
|
||||
user_parts_uuid01 TEXT NOT NULL DEFAULT '',
|
||||
user_parts_uuid02 TEXT NOT NULL DEFAULT '',
|
||||
user_parts_uuid03 TEXT NOT NULL DEFAULT '',
|
||||
name TEXT NOT NULL DEFAULT '',
|
||||
user_parts_preset_tag_number INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, user_parts_preset_number)
|
||||
);
|
||||
|
||||
-- =============================================================================
|
||||
-- 4. Deck System
|
||||
-- =============================================================================
|
||||
|
||||
CREATE TABLE user_deck_characters (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
user_deck_character_uuid TEXT NOT NULL,
|
||||
user_costume_uuid TEXT NOT NULL DEFAULT '',
|
||||
main_user_weapon_uuid TEXT NOT NULL DEFAULT '',
|
||||
user_companion_uuid TEXT NOT NULL DEFAULT '',
|
||||
power INTEGER NOT NULL DEFAULT 0,
|
||||
user_thought_uuid TEXT NOT NULL DEFAULT '',
|
||||
dressup_costume_id INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, user_deck_character_uuid)
|
||||
);
|
||||
|
||||
CREATE TABLE user_decks (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
deck_type INTEGER NOT NULL,
|
||||
user_deck_number INTEGER NOT NULL,
|
||||
user_deck_character_uuid01 TEXT NOT NULL DEFAULT '',
|
||||
user_deck_character_uuid02 TEXT NOT NULL DEFAULT '',
|
||||
user_deck_character_uuid03 TEXT NOT NULL DEFAULT '',
|
||||
name TEXT NOT NULL DEFAULT '',
|
||||
power INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, deck_type, user_deck_number)
|
||||
);
|
||||
|
||||
CREATE TABLE user_deck_sub_weapons (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
user_deck_character_uuid TEXT NOT NULL,
|
||||
ordinal INTEGER NOT NULL,
|
||||
user_weapon_uuid TEXT NOT NULL,
|
||||
PRIMARY KEY (user_id, user_deck_character_uuid, ordinal)
|
||||
);
|
||||
|
||||
CREATE TABLE user_deck_parts (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
user_deck_character_uuid TEXT NOT NULL,
|
||||
ordinal INTEGER NOT NULL,
|
||||
user_parts_uuid TEXT NOT NULL,
|
||||
PRIMARY KEY (user_id, user_deck_character_uuid, ordinal)
|
||||
);
|
||||
|
||||
CREATE TABLE user_deck_type_notes (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
deck_type INTEGER NOT NULL,
|
||||
max_deck_power INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, deck_type)
|
||||
);
|
||||
|
||||
-- =============================================================================
|
||||
-- 5. Quests
|
||||
-- =============================================================================
|
||||
|
||||
CREATE TABLE user_quests (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
quest_id INTEGER NOT NULL,
|
||||
quest_state_type INTEGER NOT NULL DEFAULT 0,
|
||||
is_battle_only INTEGER NOT NULL DEFAULT 0,
|
||||
user_deck_number INTEGER NOT NULL DEFAULT 0,
|
||||
latest_start_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
clear_count INTEGER NOT NULL DEFAULT 0,
|
||||
daily_clear_count INTEGER NOT NULL DEFAULT 0,
|
||||
last_clear_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
shortest_clear_frames INTEGER NOT NULL DEFAULT 0,
|
||||
is_reward_granted INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, quest_id)
|
||||
);
|
||||
|
||||
CREATE TABLE user_quest_missions (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
quest_id INTEGER NOT NULL,
|
||||
quest_mission_id INTEGER NOT NULL,
|
||||
progress_value INTEGER NOT NULL DEFAULT 0,
|
||||
is_clear INTEGER NOT NULL DEFAULT 0,
|
||||
latest_clear_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, quest_id, quest_mission_id)
|
||||
);
|
||||
|
||||
CREATE TABLE user_missions (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
mission_id INTEGER NOT NULL,
|
||||
start_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
progress_value INTEGER NOT NULL DEFAULT 0,
|
||||
mission_progress_status_type INTEGER NOT NULL DEFAULT 0,
|
||||
clear_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, mission_id)
|
||||
);
|
||||
|
||||
CREATE TABLE user_side_story_quests (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
side_story_quest_id INTEGER NOT NULL,
|
||||
head_side_story_quest_scene_id INTEGER NOT NULL DEFAULT 0,
|
||||
side_story_quest_state_type INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, side_story_quest_id)
|
||||
);
|
||||
|
||||
CREATE TABLE user_quest_limit_content_status (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
limit_content_id INTEGER NOT NULL,
|
||||
limit_content_quest_status_type INTEGER NOT NULL DEFAULT 0,
|
||||
event_quest_chapter_id INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, limit_content_id)
|
||||
);
|
||||
|
||||
-- =============================================================================
|
||||
-- 6. Big Hunt
|
||||
-- =============================================================================
|
||||
|
||||
CREATE TABLE user_big_hunt_max_scores (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
big_hunt_boss_id INTEGER NOT NULL,
|
||||
max_score INTEGER NOT NULL DEFAULT 0,
|
||||
max_score_update_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, big_hunt_boss_id)
|
||||
);
|
||||
|
||||
CREATE TABLE user_big_hunt_statuses (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
big_hunt_boss_id INTEGER NOT NULL,
|
||||
daily_challenge_count INTEGER NOT NULL DEFAULT 0,
|
||||
latest_challenge_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, big_hunt_boss_id)
|
||||
);
|
||||
|
||||
CREATE TABLE user_big_hunt_schedule_max_scores (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
big_hunt_schedule_id INTEGER NOT NULL,
|
||||
big_hunt_boss_id INTEGER NOT NULL,
|
||||
max_score INTEGER NOT NULL DEFAULT 0,
|
||||
max_score_update_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, big_hunt_schedule_id, big_hunt_boss_id)
|
||||
);
|
||||
|
||||
CREATE TABLE user_big_hunt_weekly_max_scores (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
big_hunt_weekly_version INTEGER NOT NULL,
|
||||
attribute_type INTEGER NOT NULL,
|
||||
max_score INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, big_hunt_weekly_version, attribute_type)
|
||||
);
|
||||
|
||||
CREATE TABLE user_big_hunt_weekly_statuses (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
big_hunt_weekly_version INTEGER NOT NULL,
|
||||
is_received_weekly_reward INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, big_hunt_weekly_version)
|
||||
);
|
||||
|
||||
-- =============================================================================
|
||||
-- 7. Gimmicks
|
||||
-- =============================================================================
|
||||
|
||||
CREATE TABLE user_gimmick_progress (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
gimmick_sequence_schedule_id INTEGER NOT NULL,
|
||||
gimmick_sequence_id INTEGER NOT NULL,
|
||||
gimmick_id INTEGER NOT NULL,
|
||||
is_gimmick_cleared INTEGER NOT NULL DEFAULT 0,
|
||||
start_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, gimmick_sequence_schedule_id, gimmick_sequence_id, gimmick_id)
|
||||
);
|
||||
|
||||
CREATE TABLE user_gimmick_ornament_progress (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
gimmick_sequence_schedule_id INTEGER NOT NULL,
|
||||
gimmick_sequence_id INTEGER NOT NULL,
|
||||
gimmick_id INTEGER NOT NULL,
|
||||
gimmick_ornament_index INTEGER NOT NULL,
|
||||
progress_value_bit INTEGER NOT NULL DEFAULT 0,
|
||||
base_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, gimmick_sequence_schedule_id, gimmick_sequence_id, gimmick_id, gimmick_ornament_index)
|
||||
);
|
||||
|
||||
CREATE TABLE user_gimmick_sequences (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
gimmick_sequence_schedule_id INTEGER NOT NULL,
|
||||
gimmick_sequence_id INTEGER NOT NULL,
|
||||
is_gimmick_sequence_cleared INTEGER NOT NULL DEFAULT 0,
|
||||
clear_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, gimmick_sequence_schedule_id, gimmick_sequence_id)
|
||||
);
|
||||
|
||||
CREATE TABLE user_gimmick_unlocks (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
gimmick_sequence_schedule_id INTEGER NOT NULL,
|
||||
gimmick_sequence_id INTEGER NOT NULL,
|
||||
gimmick_id INTEGER NOT NULL,
|
||||
is_unlocked INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, gimmick_sequence_schedule_id, gimmick_sequence_id, gimmick_id)
|
||||
);
|
||||
|
||||
-- =============================================================================
|
||||
-- 8. Inventory
|
||||
-- =============================================================================
|
||||
|
||||
CREATE TABLE user_consumable_items (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
consumable_item_id INTEGER NOT NULL,
|
||||
count INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, consumable_item_id)
|
||||
);
|
||||
|
||||
CREATE TABLE user_materials (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
material_id INTEGER NOT NULL,
|
||||
count INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, material_id)
|
||||
);
|
||||
|
||||
CREATE TABLE user_important_items (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
important_item_id INTEGER NOT NULL,
|
||||
count INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, important_item_id)
|
||||
);
|
||||
|
||||
CREATE TABLE user_premium_items (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
premium_item_id INTEGER NOT NULL,
|
||||
count INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, premium_item_id)
|
||||
);
|
||||
|
||||
CREATE TABLE user_tutorials (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
tutorial_type INTEGER NOT NULL,
|
||||
progress_phase INTEGER NOT NULL DEFAULT 0,
|
||||
choice_id INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, tutorial_type)
|
||||
);
|
||||
|
||||
CREATE TABLE user_explore_scores (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
explore_id INTEGER NOT NULL,
|
||||
max_score INTEGER NOT NULL DEFAULT 0,
|
||||
max_score_update_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, explore_id)
|
||||
);
|
||||
|
||||
CREATE TABLE user_auto_sale_settings (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
possession_auto_sale_item_type INTEGER NOT NULL,
|
||||
possession_auto_sale_item_value TEXT NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (user_id, possession_auto_sale_item_type)
|
||||
);
|
||||
|
||||
-- =============================================================================
|
||||
-- 9. Simple Progress Maps
|
||||
-- =============================================================================
|
||||
|
||||
CREATE TABLE user_navi_cutin_played (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
navi_cutin_id INTEGER NOT NULL,
|
||||
PRIMARY KEY (user_id, navi_cutin_id)
|
||||
);
|
||||
|
||||
CREATE TABLE user_viewed_movies (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
movie_id INTEGER NOT NULL,
|
||||
timestamp INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, movie_id)
|
||||
);
|
||||
|
||||
CREATE TABLE user_contents_stories (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
contents_story_id INTEGER NOT NULL,
|
||||
timestamp INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, contents_story_id)
|
||||
);
|
||||
|
||||
CREATE TABLE user_drawn_omikuji (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
omikuji_id INTEGER NOT NULL,
|
||||
timestamp INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, omikuji_id)
|
||||
);
|
||||
|
||||
CREATE TABLE user_dokan_confirmed (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
dokan_id INTEGER NOT NULL,
|
||||
PRIMARY KEY (user_id, dokan_id)
|
||||
);
|
||||
|
||||
-- =============================================================================
|
||||
-- 10. Gifts
|
||||
-- =============================================================================
|
||||
|
||||
CREATE TABLE user_gifts (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
user_gift_uuid TEXT NOT NULL,
|
||||
is_received INTEGER NOT NULL DEFAULT 0,
|
||||
possession_type INTEGER NOT NULL DEFAULT 0,
|
||||
possession_id INTEGER NOT NULL DEFAULT 0,
|
||||
count INTEGER NOT NULL DEFAULT 0,
|
||||
grant_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
description_gift_text_id INTEGER NOT NULL DEFAULT 0,
|
||||
equipment_data BLOB,
|
||||
expiration_datetime INTEGER,
|
||||
received_datetime INTEGER,
|
||||
PRIMARY KEY (user_id, user_gift_uuid)
|
||||
);
|
||||
|
||||
-- =============================================================================
|
||||
-- 11. Gacha
|
||||
-- =============================================================================
|
||||
|
||||
CREATE TABLE user_gacha_converted_medals (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
ordinal INTEGER NOT NULL,
|
||||
consumable_item_id INTEGER NOT NULL,
|
||||
count INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, ordinal)
|
||||
);
|
||||
|
||||
CREATE TABLE user_gacha_banners (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
gacha_id INTEGER NOT NULL,
|
||||
medal_count INTEGER NOT NULL DEFAULT 0,
|
||||
step_number INTEGER NOT NULL DEFAULT 0,
|
||||
loop_count INTEGER NOT NULL DEFAULT 0,
|
||||
draw_count INTEGER NOT NULL DEFAULT 0,
|
||||
box_number INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, gacha_id)
|
||||
);
|
||||
|
||||
CREATE TABLE user_gacha_banner_box_drew_counts (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
gacha_id INTEGER NOT NULL,
|
||||
box_item_id INTEGER NOT NULL,
|
||||
count INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, gacha_id, box_item_id)
|
||||
);
|
||||
|
||||
-- =============================================================================
|
||||
-- 12. Shop
|
||||
-- =============================================================================
|
||||
|
||||
CREATE TABLE user_shop_items (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
shop_item_id INTEGER NOT NULL,
|
||||
bought_count INTEGER NOT NULL DEFAULT 0,
|
||||
latest_bought_count_changed_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, shop_item_id)
|
||||
);
|
||||
|
||||
CREATE TABLE user_shop_replaceable_lineup (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
slot_number INTEGER NOT NULL,
|
||||
shop_item_id INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, slot_number)
|
||||
);
|
||||
|
||||
-- =============================================================================
|
||||
-- 13. Cage Ornaments
|
||||
-- =============================================================================
|
||||
|
||||
CREATE TABLE user_cage_ornament_rewards (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
cage_ornament_id INTEGER NOT NULL,
|
||||
acquisition_datetime INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, cage_ornament_id)
|
||||
);
|
||||
|
||||
-- +goose Down
|
||||
|
||||
DROP TABLE IF EXISTS user_cage_ornament_rewards ;
|
||||
DROP TABLE IF EXISTS user_shop_replaceable_lineup ;
|
||||
DROP TABLE IF EXISTS user_shop_items ;
|
||||
DROP TABLE IF EXISTS user_gacha_banner_box_drew_counts;
|
||||
DROP TABLE IF EXISTS user_gacha_banners ;
|
||||
DROP TABLE IF EXISTS user_gacha_converted_medals ;
|
||||
DROP TABLE IF EXISTS user_gifts ;
|
||||
DROP TABLE IF EXISTS user_dokan_confirmed ;
|
||||
DROP TABLE IF EXISTS user_drawn_omikuji ;
|
||||
DROP TABLE IF EXISTS user_contents_stories ;
|
||||
DROP TABLE IF EXISTS user_viewed_movies ;
|
||||
DROP TABLE IF EXISTS user_navi_cutin_played ;
|
||||
DROP TABLE IF EXISTS user_auto_sale_settings ;
|
||||
DROP TABLE IF EXISTS user_explore_scores ;
|
||||
DROP TABLE IF EXISTS user_tutorials ;
|
||||
DROP TABLE IF EXISTS user_premium_items ;
|
||||
DROP TABLE IF EXISTS user_important_items ;
|
||||
DROP TABLE IF EXISTS user_materials ;
|
||||
DROP TABLE IF EXISTS user_consumable_items ;
|
||||
DROP TABLE IF EXISTS user_gimmick_unlocks ;
|
||||
DROP TABLE IF EXISTS user_gimmick_sequences ;
|
||||
DROP TABLE IF EXISTS user_gimmick_ornament_progress ;
|
||||
DROP TABLE IF EXISTS user_gimmick_progress ;
|
||||
DROP TABLE IF EXISTS user_big_hunt_weekly_statuses ;
|
||||
DROP TABLE IF EXISTS user_big_hunt_weekly_max_scores ;
|
||||
DROP TABLE IF EXISTS user_big_hunt_schedule_max_scores;
|
||||
DROP TABLE IF EXISTS user_big_hunt_statuses ;
|
||||
DROP TABLE IF EXISTS user_big_hunt_max_scores ;
|
||||
DROP TABLE IF EXISTS user_quest_limit_content_status ;
|
||||
DROP TABLE IF EXISTS user_side_story_quests ;
|
||||
DROP TABLE IF EXISTS user_missions ;
|
||||
DROP TABLE IF EXISTS user_quest_missions ;
|
||||
DROP TABLE IF EXISTS user_quests ;
|
||||
DROP TABLE IF EXISTS user_deck_type_notes ;
|
||||
DROP TABLE IF EXISTS user_deck_parts ;
|
||||
DROP TABLE IF EXISTS user_deck_sub_weapons ;
|
||||
DROP TABLE IF EXISTS user_decks ;
|
||||
DROP TABLE IF EXISTS user_deck_characters ;
|
||||
DROP TABLE IF EXISTS user_parts_presets ;
|
||||
DROP TABLE IF EXISTS user_parts_group_notes ;
|
||||
DROP TABLE IF EXISTS user_parts ;
|
||||
DROP TABLE IF EXISTS user_thoughts ;
|
||||
DROP TABLE IF EXISTS user_companions ;
|
||||
DROP TABLE IF EXISTS user_weapon_notes ;
|
||||
DROP TABLE IF EXISTS user_weapon_stories ;
|
||||
DROP TABLE IF EXISTS user_weapon_awakens ;
|
||||
DROP TABLE IF EXISTS user_weapon_abilities ;
|
||||
DROP TABLE IF EXISTS user_weapon_skills ;
|
||||
DROP TABLE IF EXISTS user_weapons ;
|
||||
DROP TABLE IF EXISTS user_costume_awaken_status_ups ;
|
||||
DROP TABLE IF EXISTS user_costume_active_skills ;
|
||||
DROP TABLE IF EXISTS user_costumes ;
|
||||
DROP TABLE IF EXISTS user_character_rebirths ;
|
||||
DROP TABLE IF EXISTS user_character_board_status_ups ;
|
||||
DROP TABLE IF EXISTS user_character_board_abilities ;
|
||||
DROP TABLE IF EXISTS user_character_boards ;
|
||||
DROP TABLE IF EXISTS user_characters ;
|
||||
DROP TABLE IF EXISTS user_gacha ;
|
||||
DROP TABLE IF EXISTS user_shop_replaceable ;
|
||||
DROP TABLE IF EXISTS user_explore ;
|
||||
DROP TABLE IF EXISTS user_guerrilla_free_open ;
|
||||
DROP TABLE IF EXISTS user_portal_cage ;
|
||||
DROP TABLE IF EXISTS user_notification ;
|
||||
DROP TABLE IF EXISTS user_battle ;
|
||||
DROP TABLE IF EXISTS user_big_hunt_state ;
|
||||
DROP TABLE IF EXISTS user_side_story_active ;
|
||||
DROP TABLE IF EXISTS user_extra_quest ;
|
||||
DROP TABLE IF EXISTS user_event_quest ;
|
||||
DROP TABLE IF EXISTS user_main_quest ;
|
||||
DROP TABLE IF EXISTS user_login_bonus ;
|
||||
DROP TABLE IF EXISTS user_login ;
|
||||
DROP TABLE IF EXISTS user_profile ;
|
||||
DROP TABLE IF EXISTS user_gem ;
|
||||
DROP TABLE IF EXISTS user_status ;
|
||||
DROP TABLE IF EXISTS user_setting ;
|
||||
DROP TABLE IF EXISTS sessions ;
|
||||
DROP TABLE IF EXISTS users ;
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
-- +goose Up
|
||||
|
||||
-- Delete deck characters with empty weapons (always a bug).
|
||||
DELETE FROM user_deck_characters
|
||||
WHERE main_user_weapon_uuid = '';
|
||||
|
||||
-- Delete decks that reference deleted deck characters.
|
||||
DELETE FROM user_decks
|
||||
WHERE user_deck_character_uuid01 NOT IN (SELECT user_deck_character_uuid FROM user_deck_characters)
|
||||
AND user_deck_character_uuid01 != '';
|
||||
|
||||
-- +goose Down
|
||||
-- No rollback needed: EnsureDefaultDeck recreates decks on next SetTutorialProgress call.
|
||||
@@ -0,0 +1,15 @@
|
||||
-- +goose Up
|
||||
CREATE TABLE user_costume_lottery_effects (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
user_costume_uuid TEXT NOT NULL,
|
||||
slot_number INTEGER NOT NULL,
|
||||
odds_number INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, user_costume_uuid, slot_number)
|
||||
);
|
||||
|
||||
ALTER TABLE user_costumes ADD COLUMN costume_lottery_effect_unlocked_slot_count INTEGER NOT NULL DEFAULT 0;
|
||||
|
||||
-- +goose Down
|
||||
ALTER TABLE user_costumes DROP COLUMN costume_lottery_effect_unlocked_slot_count;
|
||||
DROP TABLE IF EXISTS user_costume_lottery_effects;
|
||||
@@ -0,0 +1,12 @@
|
||||
-- +goose Up
|
||||
CREATE TABLE user_costume_lottery_effect_pending (
|
||||
user_id INTEGER NOT NULL REFERENCES users(user_id),
|
||||
user_costume_uuid TEXT NOT NULL,
|
||||
slot_number INTEGER NOT NULL,
|
||||
odds_number INTEGER NOT NULL DEFAULT 0,
|
||||
latest_version INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, user_costume_uuid)
|
||||
);
|
||||
|
||||
-- +goose Down
|
||||
DROP TABLE IF EXISTS user_costume_lottery_effect_pending;
|
||||
Reference in New Issue
Block a user