瀏覽代碼

Add start of seed script

Maarten van den Berg 6 年之前
父節點
當前提交
35438719f6
共有 1 個文件被更改,包括 58 次插入0 次删除
  1. 58 0
      piket_server/seed.py

+ 58 - 0
piket_server/seed.py

@@ -0,0 +1,58 @@
1
+"""
2
+Provides functions to manage the database while the server is offline.
3
+"""
4
+
5
+import argparse
6
+import csv
7
+
8
+from piket_server import db, Person, Settlement, ConsumptionType, Consumption
9
+
10
+
11
+def main():
12
+    """ Main entry point. """
13
+
14
+    parser = argparse.ArgumentParser()
15
+    subparsers = parser.add_subparsers()
16
+
17
+    # Clear command
18
+    parser_clear = subparsers.add_parser("clear", help="Clear the database.")
19
+    parser_clear.set_defaults(func=cmd_clear)
20
+    parser_clear.add_argument("--removemydata", action="store_true")
21
+
22
+    # Parser load_seeds
23
+    # TODO
24
+
25
+    args = parser.parse_args()
26
+    args.func(args)
27
+
28
+
29
+def cmd_clear(args) -> None:
30
+    """ Entry point for 'clear' subcommand. """
31
+
32
+    if not args.removemydata:
33
+        print("WARNING! This command will delete all contents in your database!")
34
+        print("Type 'removemydata' to continue, anything else or CTRL-C to abort.")
35
+
36
+        confirmation = input("> ")
37
+
38
+        do_wipe = confirmation == "removemydata"
39
+
40
+    else:
41
+        do_wipe = True
42
+
43
+    if do_wipe:
44
+        print("Dropping all tables...")
45
+        db.drop_all()
46
+
47
+        print("All data removed. Recreating database...")
48
+        db.create_all()
49
+
50
+        print("Done.")
51
+        return
52
+
53
+    else:
54
+        print("Aborting.")
55
+
56
+
57
+if __name__ == "__main__":
58
+    main()