mirror of
https://github.com/getredash/redash.git
synced 2025-12-19 17:37:19 -05:00
Create db task instead of SQL tables.
This commit is contained in:
15
manage.py
15
manage.py
@@ -39,6 +39,12 @@ def start_server(port, debug):
|
|||||||
app.run(debug=debug, port=port)
|
app.run(debug=debug, port=port)
|
||||||
|
|
||||||
|
|
||||||
|
def create_db(create_tables, drop_tables):
|
||||||
|
from redash.models import create_db
|
||||||
|
|
||||||
|
create_db(create_tables, drop_tables)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
channel = logging.StreamHandler()
|
channel = logging.StreamHandler()
|
||||||
logging.getLogger().addHandler(channel)
|
logging.getLogger().addHandler(channel)
|
||||||
@@ -55,10 +61,19 @@ if __name__ == '__main__':
|
|||||||
server_parser.add_argument('--port',
|
server_parser.add_argument('--port',
|
||||||
default=8888,
|
default=8888,
|
||||||
help='port to bind to')
|
help='port to bind to')
|
||||||
|
db_parser = subparsers.add_parser('db', help='database operations')
|
||||||
|
db_parser.add_argument('--create-tables',
|
||||||
|
action='store_true',
|
||||||
|
help='Create all tables')
|
||||||
|
db_parser.add_argument('--drop-tables',
|
||||||
|
action='store_true',
|
||||||
|
help='Drop all tables')
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
if args.command == "worker":
|
if args.command == "worker":
|
||||||
start_workers()
|
start_workers()
|
||||||
|
elif args.command == 'db':
|
||||||
|
create_db(args.create_tables, args.drop_tables)
|
||||||
elif args.command == 'server':
|
elif args.command == 'server':
|
||||||
start_server(args.port, args.debug)
|
start_server(args.port, args.debug)
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
BEGIN;
|
|
||||||
CREATE TABLE "query_results" (
|
|
||||||
"id" serial NOT NULL PRIMARY KEY,
|
|
||||||
"query_hash" varchar(32) NOT NULL,
|
|
||||||
"query" text NOT NULL,
|
|
||||||
"data" text NOT NULL,
|
|
||||||
"runtime" double precision NOT NULL,
|
|
||||||
"retrieved_at" timestamp with time zone NOT NULL
|
|
||||||
)
|
|
||||||
;
|
|
||||||
CREATE TABLE "queries" (
|
|
||||||
"id" serial NOT NULL PRIMARY KEY,
|
|
||||||
"latest_query_data_id" integer REFERENCES "query_results" ("id") DEFERRABLE INITIALLY DEFERRED,
|
|
||||||
"name" varchar(255) NOT NULL,
|
|
||||||
"description" varchar(4096),
|
|
||||||
"query" text NOT NULL,
|
|
||||||
"query_hash" varchar(32) NOT NULL,
|
|
||||||
"api_key" varchar(40),
|
|
||||||
"ttl" integer NOT NULL,
|
|
||||||
"user" varchar(360) NOT NULL,
|
|
||||||
"created_at" timestamp with time zone NOT NULL
|
|
||||||
)
|
|
||||||
;
|
|
||||||
CREATE TABLE "dashboards" (
|
|
||||||
"id" serial NOT NULL PRIMARY KEY,
|
|
||||||
"slug" varchar(140) NOT NULL,
|
|
||||||
"name" varchar(100) NOT NULL,
|
|
||||||
"user" varchar(360) NOT NULL,
|
|
||||||
"layout" text NOT NULL,
|
|
||||||
"is_archived" boolean NOT NULL
|
|
||||||
)
|
|
||||||
;
|
|
||||||
CREATE TABLE "visualizations" (
|
|
||||||
"id" serial NOT NULL PRIMARY KEY,
|
|
||||||
"type" varchar(100) NOT NULL,
|
|
||||||
"query_id" integer NOT NULL REFERENCES "queries" ("id") DEFERRABLE INITIALLY DEFERRED,
|
|
||||||
"name" varchar(255) NOT NULL,
|
|
||||||
"description" varchar(4096),
|
|
||||||
"options" text NOT NULL
|
|
||||||
)
|
|
||||||
;
|
|
||||||
CREATE TABLE "widgets" (
|
|
||||||
"id" serial NOT NULL PRIMARY KEY,
|
|
||||||
"type" varchar(100) NOT NULL,
|
|
||||||
"width" integer NOT NULL,
|
|
||||||
"options" text NOT NULL,
|
|
||||||
"query_id" integer,
|
|
||||||
"visualization_id" integer NOT NULL REFERENCES "visualizations" ("id") DEFERRABLE INITIALLY DEFERRED,
|
|
||||||
"dashboard_id" integer NOT NULL REFERENCES "dashboards" ("id") DEFERRABLE INITIALLY DEFERRED
|
|
||||||
)
|
|
||||||
;
|
|
||||||
CREATE INDEX "queries_latest_query_data_id" ON "queries" ("latest_query_data_id");
|
|
||||||
CREATE INDEX "widgets_query_id" ON "widgets" ("query_id");
|
|
||||||
CREATE INDEX "widgets_dashboard_id" ON "widgets" ("dashboard_id");
|
|
||||||
|
|
||||||
COMMIT;
|
|
||||||
@@ -180,4 +180,19 @@ class Widget(db.Model):
|
|||||||
}
|
}
|
||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
return u"%s=>%s" % (self.id, self.dashboard_id)
|
return u"%s=>%s" % (self.id, self.dashboard_id)
|
||||||
|
|
||||||
|
|
||||||
|
def create_db(create_tables, drop_tables):
|
||||||
|
all_models = (QueryResult, Query, Dashboard, Widget)
|
||||||
|
|
||||||
|
db.connect_db()
|
||||||
|
|
||||||
|
for model in all_models:
|
||||||
|
if drop_tables and model.table_exists():
|
||||||
|
model.drop_table()
|
||||||
|
|
||||||
|
if create_tables:
|
||||||
|
model.create_table()
|
||||||
|
|
||||||
|
db.close_db(None)
|
||||||
|
|||||||
Reference in New Issue
Block a user