Add crash_data table to store the json
Add searching on crashing backtrace function names
Drop never used tables
Bump DB schema version
Requires PostgreSQL >= 9.4 for now (for jsonb)
--
-- Created by SQL::Translator::Producer::PostgreSQL
-- Created on Sun Feb 1 19:58:35 2015
--
;
--
-- Table: crash_users.
--
CREATE TABLE "crash_users" (
"id" serial NOT NULL,
"user_id" character varying(40) NOT NULL,
"os" character varying(40),
"cpu_arch" character varying(10),
"cpu_count" integer,
"extra_info" text,
PRIMARY KEY ("id")
);
;
--
-- Table: modules.
--
CREATE TABLE "modules" (
"id" serial NOT NULL,
"debug_id" character varying(33) NOT NULL,
"filename" character varying(128) NOT NULL,
"version" character varying(64),
PRIMARY KEY ("id"),
CONSTRAINT "module_id" UNIQUE ("debug_id", "filename")
);
;
--
-- Table: products.
--
CREATE TABLE "products" (
"id" serial NOT NULL,
"distributor" character varying(40),
"name" character varying(40),
"version" character varying(16),
"release_channel" character varying,
PRIMARY KEY ("id")
);
;
--
-- Table: crash_reports.
--
CREATE TABLE "crash_reports" (
"id" serial NOT NULL,
"start_time" timestamp,
"crash_time" timestamp,
"uuid" character varying(36) NOT NULL,
"bug_reference" character varying(20),
"crash_user_id" integer NOT NULL,
"product_id" integer NOT NULL,
PRIMARY KEY ("id")
);
CREATE INDEX "crash_reports_idx_crash_user_id" on "crash_reports" ("crash_user_id");
CREATE INDEX "crash_reports_idx_product_id" on "crash_reports" ("product_id");
;
--
-- Table: crash_threads.
--
CREATE TABLE "crash_threads" (
"id" serial NOT NULL,
"number" integer NOT NULL,
"crashed" bool NOT NULL,
"crash_report_id" integer NOT NULL,
PRIMARY KEY ("id")
);
CREATE INDEX "crash_threads_idx_crash_report_id" on "crash_threads" ("crash_report_id");
;
--
-- Table: crash_frames.
--
CREATE TABLE "crash_frames" (
"id" serial NOT NULL,
"number" integer NOT NULL,
"function" character varying(128),
"source_file" character varying(128),
"source_line" integer,
"stack_walk_mode" character varying(10),
"crash_thread_id" integer NOT NULL,
"module_id" integer NOT NULL,
PRIMARY KEY ("id")
);
CREATE INDEX "crash_frames_idx_crash_thread_id" on "crash_frames" ("crash_thread_id");
CREATE INDEX "crash_frames_idx_module_id" on "crash_frames" ("module_id");
;
--
-- Foreign Key Definitions
--
;
ALTER TABLE "crash_reports" ADD CONSTRAINT "crash_reports_fk_crash_user_id" FOREIGN KEY ("crash_user_id")
REFERENCES "crash_users" ("id") DEFERRABLE;
;
ALTER TABLE "crash_reports" ADD CONSTRAINT "crash_reports_fk_product_id" FOREIGN KEY ("product_id")
REFERENCES "products" ("id") DEFERRABLE;
;
ALTER TABLE "crash_threads" ADD CONSTRAINT "crash_threads_fk_crash_report_id" FOREIGN KEY ("crash_report_id")
REFERENCES "crash_reports" ("id") DEFERRABLE;
;
ALTER TABLE "crash_frames" ADD CONSTRAINT "crash_frames_fk_crash_thread_id" FOREIGN KEY ("crash_thread_id")
REFERENCES "crash_threads" ("id") DEFERRABLE;
;
ALTER TABLE "crash_frames" ADD CONSTRAINT "crash_frames_fk_module_id" FOREIGN KEY ("module_id")
REFERENCES "modules" ("id") DEFERRABLE;
;