mirror of
https://github.com/imgfloat/server.git
synced 2026-02-05 03:39:26 +00:00
Add migrations
This commit is contained in:
6
pom.xml
6
pom.xml
@@ -86,6 +86,12 @@
|
|||||||
<artifactId>spring-session-jdbc</artifactId>
|
<artifactId>spring-session-jdbc</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.flywaydb</groupId>
|
||||||
|
<artifactId>flyway-core</artifactId>
|
||||||
|
<version>11.20.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.xerial</groupId>
|
<groupId>org.xerial</groupId>
|
||||||
<artifactId>sqlite-jdbc</artifactId>
|
<artifactId>sqlite-jdbc</artifactId>
|
||||||
|
|||||||
@@ -29,12 +29,17 @@ spring:
|
|||||||
jpa:
|
jpa:
|
||||||
open-in-view: false
|
open-in-view: false
|
||||||
hibernate:
|
hibernate:
|
||||||
ddl-auto: update
|
ddl-auto: validate
|
||||||
database-platform: org.hibernate.community.dialect.SQLiteDialect
|
database-platform: org.hibernate.community.dialect.SQLiteDialect
|
||||||
|
flyway:
|
||||||
|
enabled: true
|
||||||
|
locations: classpath:db/migration
|
||||||
|
baseline-on-migrate: true
|
||||||
|
baseline-version: 1
|
||||||
session:
|
session:
|
||||||
store-type: jdbc
|
store-type: jdbc
|
||||||
jdbc:
|
jdbc:
|
||||||
initialize-schema: always
|
initialize-schema: never
|
||||||
platform: sqlite
|
platform: sqlite
|
||||||
security:
|
security:
|
||||||
oauth2:
|
oauth2:
|
||||||
|
|||||||
113
src/main/resources/db/migration/V1__init.sql
Normal file
113
src/main/resources/db/migration/V1__init.sql
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
CREATE TABLE IF NOT EXISTS assets (
|
||||||
|
id TEXT PRIMARY KEY,
|
||||||
|
broadcaster TEXT NOT NULL,
|
||||||
|
asset_type TEXT NOT NULL,
|
||||||
|
created_at TIMESTAMP NOT NULL,
|
||||||
|
updated_at TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS visual_assets (
|
||||||
|
id TEXT PRIMARY KEY,
|
||||||
|
name TEXT NOT NULL,
|
||||||
|
preview TEXT,
|
||||||
|
x REAL NOT NULL,
|
||||||
|
y REAL NOT NULL,
|
||||||
|
width REAL NOT NULL,
|
||||||
|
height REAL NOT NULL,
|
||||||
|
rotation REAL NOT NULL,
|
||||||
|
speed REAL,
|
||||||
|
muted BOOLEAN,
|
||||||
|
media_type TEXT,
|
||||||
|
original_media_type TEXT,
|
||||||
|
z_index INTEGER,
|
||||||
|
audio_volume REAL,
|
||||||
|
hidden BOOLEAN NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS audio_assets (
|
||||||
|
id TEXT PRIMARY KEY,
|
||||||
|
name TEXT NOT NULL,
|
||||||
|
media_type TEXT,
|
||||||
|
original_media_type TEXT,
|
||||||
|
audio_loop BOOLEAN,
|
||||||
|
audio_delay_millis INTEGER,
|
||||||
|
audio_speed REAL,
|
||||||
|
audio_pitch REAL,
|
||||||
|
audio_volume REAL,
|
||||||
|
hidden BOOLEAN NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS script_assets (
|
||||||
|
id TEXT PRIMARY KEY,
|
||||||
|
name TEXT NOT NULL,
|
||||||
|
media_type TEXT,
|
||||||
|
original_media_type TEXT
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS script_asset_attachments (
|
||||||
|
id TEXT PRIMARY KEY,
|
||||||
|
script_asset_id TEXT NOT NULL,
|
||||||
|
name TEXT NOT NULL,
|
||||||
|
media_type TEXT,
|
||||||
|
original_media_type TEXT,
|
||||||
|
asset_type TEXT NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS channels (
|
||||||
|
broadcaster TEXT PRIMARY KEY,
|
||||||
|
canvas_width REAL NOT NULL,
|
||||||
|
canvas_height REAL NOT NULL,
|
||||||
|
created_at TIMESTAMP NOT NULL,
|
||||||
|
updated_at TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS channel_admins (
|
||||||
|
channel_id TEXT NOT NULL,
|
||||||
|
admin_username TEXT NOT NULL,
|
||||||
|
PRIMARY KEY (channel_id, admin_username),
|
||||||
|
FOREIGN KEY (channel_id) REFERENCES channels(broadcaster) ON DELETE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS settings (
|
||||||
|
id INTEGER PRIMARY KEY,
|
||||||
|
min_asset_playback_speed_fraction REAL NOT NULL,
|
||||||
|
max_asset_playback_speed_fraction REAL NOT NULL,
|
||||||
|
min_asset_audio_pitch_fraction REAL NOT NULL,
|
||||||
|
max_asset_audio_pitch_fraction REAL NOT NULL,
|
||||||
|
min_asset_volume_fraction REAL NOT NULL,
|
||||||
|
max_asset_volume_fraction REAL NOT NULL,
|
||||||
|
max_canvas_side_length_pixels INTEGER NOT NULL,
|
||||||
|
canvas_frames_per_second INTEGER NOT NULL,
|
||||||
|
created_at TIMESTAMP NOT NULL,
|
||||||
|
updated_at TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS system_administrators (
|
||||||
|
id TEXT PRIMARY KEY,
|
||||||
|
twitch_username TEXT NOT NULL UNIQUE,
|
||||||
|
created_at TIMESTAMP NOT NULL,
|
||||||
|
updated_at TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS spring_session (
|
||||||
|
primary_id TEXT NOT NULL,
|
||||||
|
session_id TEXT NOT NULL,
|
||||||
|
creation_time INTEGER NOT NULL,
|
||||||
|
last_access_time INTEGER NOT NULL,
|
||||||
|
max_inactive_interval INTEGER NOT NULL,
|
||||||
|
expiry_time INTEGER NOT NULL,
|
||||||
|
principal_name TEXT,
|
||||||
|
PRIMARY KEY (primary_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX IF NOT EXISTS spring_session_ix1 ON spring_session (session_id);
|
||||||
|
CREATE INDEX IF NOT EXISTS spring_session_ix2 ON spring_session (expiry_time);
|
||||||
|
CREATE INDEX IF NOT EXISTS spring_session_ix3 ON spring_session (principal_name);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS spring_session_attributes (
|
||||||
|
session_primary_id TEXT NOT NULL,
|
||||||
|
attribute_name TEXT NOT NULL,
|
||||||
|
attribute_bytes BLOB NOT NULL,
|
||||||
|
PRIMARY KEY (session_primary_id, attribute_name),
|
||||||
|
FOREIGN KEY (session_primary_id) REFERENCES spring_session(primary_id) ON DELETE CASCADE
|
||||||
|
);
|
||||||
Reference in New Issue
Block a user