Files
family-hub/backend/init_db.py
jessikitty 0a8489a89c Fix: Update init_db.py to use correct import paths
- Changed imports to use app.core.database and app.models structure
- Added Base import from app.core.database (not app.models)
- Fixed imports to match actual project structure
- Added comprehensive demo data with 5 users and 12 chores
- Fixes ModuleNotFoundError when running database initialization
2026-01-31 23:00:59 +11:00

1 line
10 KiB
Python

IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwoiIiIKRGF0YWJhc2UgaW5pdGlhbGl6YXRpb24gc2NyaXB0IGZvciBGYW1pbHkgSHViLgpDcmVhdGVzIHRhYmxlcyBhbmQgcG9wdWxhdGVzIHdpdGggZGVtbyBkYXRhLgoiIiIKCmltcG9ydCBzeXMKZnJvbSBwYXRobGliIGltcG9ydCBQYXRoCmZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lLCB0aW1lZGVsdGEKCiMgQWRkIHBhcmVudCBkaXJlY3RvcnkgdG8gcGF0aCB0byBpbXBvcnQgZnJvbSBhcHAKc3lzLnBhdGguaW5zZXJ0KDAsIHN0cihQYXRoKF9fZmlsZV9fKS5wYXJlbnQpKQoKZnJvbSBhcHAuY29yZS5kYXRhYmFzZSBpbXBvcnQgZW5naW5lLCBTZXNzaW9uTG9jYWwsIEJhc2UKZnJvbSBhcHAubW9kZWxzIGltcG9ydCBVc2VyLCBDaG9yZQpmcm9tIHBhc3NsaWIuY29udGV4dCBpbXBvcnQgQ3J5cHRDb250ZXh0Cgpwd2RfY29udGV4dCA9IENyeXB0Q29udGV4dChzY2hlbWVzPVsiYmNyeXB0Il0sIGRlcHJlY2F0ZWQ9ImF1dG8iKQoKZGVmIGluaXRfZGIoKToKICAgICIiIkluaXRpYWxpemUgdGhlIGRhdGFiYXNlIHdpdGggdGFibGVzIGFuZCBkZW1vIGRhdGEuIiIiCiAgICBwcmludCgi8J+agCBJbml0aWFsaXppbmcgRmFtaWx5IEh1YiBkYXRhYmFzZS4uLiIpCiAgICAKICAgICMgQ3JlYXRlIGFsbCB0YWJsZXMKICAgIHByaW50KCLwn5SnIENyZWF0aW5nIGRhdGFiYXNlIHRhYmxlcy4uLiIpCiAgICBCYXNlLm1ldGFkYXRhLmNyZWF0ZV9hbGwoYmluZD1lbmdpbmUpCiAgICAKICAgIGRiID0gU2Vzc2lvbkxvY2FsKCkKICAgIAogICAgdHJ5OgogICAgICAgICMgQ2hlY2sgaWYgZGF0YSBhbHJlYWR5IGV4aXN0cwogICAgICAgIGV4aXN0aW5nX3VzZXJzID0gZGIucXVlcnkoVXNlcikuY291bnQoKQogICAgICAgIGlmIGV4aXN0aW5nX3VzZXJzID4gMDoKICAgICAgICAgICAgcHJpbnQoZiLimqDvuI8gIERhdGFiYXNlIGFscmVhZHkgaGFzIHtleGlzdGluZ191c2Vyc30gdXNlcnMuIFNraXBwaW5nIGluaXRpYWxpemF0aW9uLiIpCiAgICAgICAgICAgIHByaW50KCIgICBUbyByZXNldCB0aGUgZGF0YWJhc2UsIGRlbGV0ZSB0aGUgZmlsZSBhbmQgcnVuIHRoaXMgc2NyaXB0IGFnYWluLiIpCiAgICAgICAgICAgIHJldHVybgogICAgICAgIAogICAgICAgICMgQ3JlYXRlIGRlbW8gdXNlcnMKICAgICAgICBwcmludCgiXG7wn5GlIENyZWF0aW5nIGRlbW8gdXNlcnMuLi4iKQogICAgICAgIHVzZXJzX2RhdGEgPSBbCiAgICAgICAgICAgIHsidXNlcm5hbWUiOiAiamVzcyIsICJlbWFpbCI6ICJqZXNzQGZhbWlseS5sb2NhbCIsICJmdWxsX25hbWUiOiAiSmVzcyIsICJpc19hZG1pbiI6IFRydWV9LAogICAgICAgICAgICB7InVzZXJuYW1lIjogImxvdSIsICJlbWFpbCI6ICJsb3VAZmFtaWx5LmxvY2FsIiwgImZ1bGxfbmFtZSI6ICJMb3UiLCAiaXNfYWRtaW4iOiBGYWxzZX0sCiAgICAgICAgICAgIHsidXNlcm5hbWUiOiAid2lsbGlhbSIsICJlbWFpbCI6ICJ3aWxsaWFtQGZhbWlseS5sb2NhbCIsICJmdWxsX25hbWUiOiAiV2lsbGlhbSIsICJpc19hZG1pbiI6IEZhbHNlfSwKICAgICAgICAgICAgeyJ1c2VybmFtZSI6ICJ4YW5kZXIiLCAiZW1haWwiOiAieGFuZGVyQGZhbWlseS5sb2NhbCIsICJmdWxsX25hbWUiOiAiWGFuZGVyIiwgImlzX2FkbWluIjogRmFsc2V9LAogICAgICAgICAgICB7InVzZXJuYW1lIjogImJlbGxhIiwgImVtYWlsIjogImJlbGxhQGZhbWlseS5sb2NhbCIsICJmdWxsX25hbWUiOiAiQmVsbGEiLCAiaXNfYWRtaW4iOiBGYWxzZX0sCiAgICAgICAgXQogICAgICAgIAogICAgICAgIHVzZXJzID0gW10KICAgICAgICBmb3IgdXNlcl9kYXRhIGluIHVzZXJzX2RhdGE6CiAgICAgICAgICAgIHVzZXIgPSBVc2VyKAogICAgICAgICAgICAgICAgdXNlcm5hbWU9dXNlcl9kYXRhWyJ1c2VybmFtZSJdLAogICAgICAgICAgICAgICAgZW1haWw9dXNlcl9kYXRhWyJlbWFpbCJdLAogICAgICAgICAgICAgICAgZnVsbF9uYW1lPXVzZXJfZGF0YVsiZnVsbF9uYW1lIl0sCiAgICAgICAgICAgICAgICBoYXNoZWRfcGFzc3dvcmQ9cHdkX2NvbnRleHQuaGFzaCgicGFzc3dvcmQxMjMiKSwKICAgICAgICAgICAgICAgIGlzX2FkbWluPXVzZXJfZGF0YVsiaXNfYWRtaW4iXSwKICAgICAgICAgICAgICAgIGlzX2FjdGl2ZT1UcnVlCiAgICAgICAgICAgICkKICAgICAgICAgICAgZGIuYWRkKHVzZXIpCiAgICAgICAgICAgIHVzZXJzLmFwcGVuZCh1c2VyKQogICAgICAgICAgICBhZG1pbl9iYWRnZSA9ICIg8J+RkSIgaWYgdXNlci5pc19hZG1pbiBlbHNlICIiCiAgICAgICAgICAgIHByaW50KGYiICDinJMge3VzZXIuZnVsbF9uYW1lfSAoe3VzZXIudXNlcm5hbWV9KXthZG1pbl9iYWRnZX0iKQogICAgICAgIAogICAgICAgIGRiLmZsdXNoKCkgICMgRmx1c2ggdG8gZ2V0IHVzZXIgSURzCiAgICAgICAgCiAgICAgICAgIyBDcmVhdGUgZGVtbyBjaG9yZXMKICAgICAgICBwcmludCgiXG7wn6e5IENyZWF0aW5nIGRlbW8gY2hvcmVzLi4uIikKICAgICAgICAKICAgICAgICAjIEdldCB1c2VyIElEcyBmb3IgYXNzaWdubWVudAogICAgICAgIGplc3MgPSBuZXh0KHUgZm9yIHUgaW4gdXNlcnMgaWYgdS51c2VybmFtZSA9PSAiamVzcyIpCiAgICAgICAgbG91ID0gbmV4dCh1IGZvciB1IGluIHVzZXJzIGlmIHUudXNlcm5hbWUgPT0gImxvdSIpCiAgICAgICAgd2lsbGlhbSA9IG5leHQodSBmb3IgdSBpbiB1c2VycyBpZiB1LnVzZXJuYW1lID09ICJ3aWxsaWFtIikKICAgICAgICB4YW5kZXIgPSBuZXh0KHUgZm9yIHUgaW4gdXNlcnMgaWYgdS51c2VybmFtZSA9PSAieGFuZGVyIikKICAgICAgICBiZWxsYSA9IG5leHQodSBmb3IgdSBpbiB1c2VycyBpZiB1LnVzZXJuYW1lID09ICJiZWxsYSIpCiAgICAgICAgCiAgICAgICAgZGVtb19jaG9yZXMgPSBbCiAgICAgICAgICAgICMgRGFpbHkgY2hvcmVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJ0aXRsZSI6ICJGZWVkIHRoZSBwZXRzIiwKICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGZWVkIGNhdHMgaW4gdGhlIG1vcm5pbmcgYW5kIGV2ZW5pbmciLAogICAgICAgICAgICAgICAgImZyZXF1ZW5jeSI6ICJEQUlMWSIsCiAgICAgICAgICAgICAgICAicG9pbnRzIjogNSwKICAgICAgICAgICAgICAgICJyb29tIjogIktpdGNoZW4iLAogICAgICAgICAgICAgICAgImFzc2lnbmVkX3RvX2lkIjogYmVsbGEuaWQsCiAgICAgICAgICAgICAgICAic3RhdHVzIjogIlBFTkRJTkciCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJ0aXRsZSI6ICJUYWtlIG91dCB0cmFzaCIsCiAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRW1wdHkga2l0Y2hlbiBhbmQgYmF0aHJvb20gYmlucyIsCiAgICAgICAgICAgICAgICAiZnJlcXVlbmN5IjogIkRBSUxZIiwKICAgICAgICAgICAgICAgICJwb2ludHMiOiAzLAogICAgICAgICAgICAgICAgInJvb20iOiAiS2l0Y2hlbiIsCiAgICAgICAgICAgICAgICAiYXNzaWduZWRfdG9faWQiOiB4YW5kZXIuaWQsCiAgICAgICAgICAgICAgICAic3RhdHVzIjogIlBFTkRJTkciCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJ0aXRsZSI6ICJUaWR5IGxpdmluZyByb29tIiwKICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJQaWNrIHVwIHRveXMsIHN0cmFpZ2h0ZW4gY3VzaGlvbnMsIGNsZWFyIGNvZmZlZSB0YWJsZSIsCiAgICAgICAgICAgICAgICAiZnJlcXVlbmN5IjogIkRBSUxZIiwKICAgICAgICAgICAgICAgICJwb2ludHMiOiA1LAogICAgICAgICAgICAgICAgInJvb20iOiAiTGl2aW5nIFJvb20iLAogICAgICAgICAgICAgICAgImFzc2lnbmVkX3RvX2lkIjogd2lsbGlhbS5pZCwKICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiSU5fUFJPR1JFU1MiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIAogICAgICAgICAgICAjIFdlZWtseSBjaG9yZXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgInRpdGxlIjogIlZhY3V1bSBlbnRpcmUgaG91c2UiLAogICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlZhY3V1bSBhbGwgY2FycGV0ZWQgYXJlYXMgaW5jbHVkaW5nIHN0YWlycyIsCiAgICAgICAgICAgICAgICAiZnJlcXVlbmN5IjogIldFRUtMWSIsCiAgICAgICAgICAgICAgICAicG9pbnRzIjogMTUsCiAgICAgICAgICAgICAgICAicm9vbSI6ICJXaG9sZSBIb3VzZSIsCiAgICAgICAgICAgICAgICAiYXNzaWduZWRfdG9faWQiOiBsb3UuaWQsCiAgICAgICAgICAgICAgICAic3RhdHVzIjogIlBFTkRJTkciCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJ0aXRsZSI6ICJDbGVhbiBiYXRocm9vbXMiLAogICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkNsZWFuIHRvaWxldHMsIHNpbmtzLCBtaXJyb3JzLCBhbmQgbW9wIGZsb29ycyIsCiAgICAgICAgICAgICAgICAiZnJlcXVlbmN5IjogIldFRUtMWSIsCiAgICAgICAgICAgICAgICAicG9pbnRzIjogMjAsCiAgICAgICAgICAgICAgICAicm9vbSI6ICJCYXRocm9vbXMiLAogICAgICAgICAgICAgICAgImFzc2lnbmVkX3RvX2lkIjogamVzcy5pZCwKICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiQ09NUExFVEVEIiwKICAgICAgICAgICAgICAgICJjb21wbGV0ZWRfYXQiOiBkYXRldGltZS5ub3coKSAtIHRpbWVkZWx0YShkYXlzPTEpCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJ0aXRsZSI6ICJNb3cgdGhlIGxhd24iLAogICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk1vdyBmcm9udCBhbmQgYmFjayB5YXJkLCBlZGdlIHdhbGt3YXlzIiwKICAgICAgICAgICAgICAgICJmcmVxdWVuY3kiOiAiV0VFS0xZIiwKICAgICAgICAgICAgICAgICJwb2ludHMiOiAyNSwKICAgICAgICAgICAgICAgICJyb29tIjogIllhcmQiLAogICAgICAgICAgICAgICAgImFzc2lnbmVkX3RvX2lkIjogd2lsbGlhbS5pZCwKICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiUEVORElORyIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgCiAgICAgICAgICAgICMgTW9udGhseSBjaG9yZXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgInRpdGxlIjogIkRlZXAgY2xlYW4ga2l0Y2hlbiIsCiAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQ2xlYW4gb3ZlbiwgZnJpZGdlLCBjYWJpbmV0cywgYW5kIGJlaGluZCBhcHBsaWFuY2VzIiwKICAgICAgICAgICAgICAgICJmcmVxdWVuY3kiOiAiTU9OVEhMWSIsCiAgICAgICAgICAgICAgICAicG9pbnRzIjogNTAsCiAgICAgICAgICAgICAgICAicm9vbSI6ICJLaXRjaGVuIiwKICAgICAgICAgICAgICAgICJhc3NpZ25lZF90b19pZCI6IGplc3MuaWQsCiAgICAgICAgICAgICAgICAic3RhdHVzIjogIlBFTkRJTkciCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJ0aXRsZSI6ICJXYXNoIHdpbmRvd3MiLAogICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkNsZWFuIGFsbCBpbnRlcmlvciBhbmQgZXh0ZXJpb3Igd2luZG93cyIsCiAgICAgICAgICAgICAgICAiZnJlcXVlbmN5IjogIk1PTlRITFkiLAogICAgICAgICAgICAgICAgInBvaW50cyI6IDQwLAogICAgICAgICAgICAgICAgInJvb20iOiAiV2hvbGUgSG91c2UiLAogICAgICAgICAgICAgICAgImFzc2lnbmVkX3RvX2lkIjogbG91LmlkLAogICAgICAgICAgICAgICAgInN0YXR1cyI6ICJQRU5ESU5HIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAidGl0bGUiOiAiT3JnYW5pemUgZ2FyYWdlIiwKICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTb3J0IGl0ZW1zLCBzd2VlcCBmbG9vciwgYXJyYW5nZSB0b29scyIsCiAgICAgICAgICAgICAgICAiZnJlcXVlbmN5IjogIk1PTlRITFkiLAogICAgICAgICAgICAgICAgInBvaW50cyI6IDM1LAogICAgICAgICAgICAgICAgInJvb20iOiAiR2FyYWdlIiwKICAgICAgICAgICAgICAgICJhc3NpZ25lZF90b19pZCI6IHdpbGxpYW0uaWQsCiAgICAgICAgICAgICAgICAic3RhdHVzIjogIklOX1BST0dSRVNTIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAidGl0bGUiOiAiQ2hhbmdlIGFpciBmaWx0ZXJzIiwKICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXBsYWNlIEhWQUMgZmlsdGVycyB0aHJvdWdob3V0IGhvdXNlIiwKICAgICAgICAgICAgICAgICJmcmVxdWVuY3kiOiAiTU9OVEhMWSIsCiAgICAgICAgICAgICAgICAicG9pbnRzIjogMTAsCiAgICAgICAgICAgICAgICAicm9vbSI6ICJXaG9sZSBIb3VzZSIsCiAgICAgICAgICAgICAgICAiYXNzaWduZWRfdG9faWQiOiBqZXNzLmlkLAogICAgICAgICAgICAgICAgInN0YXR1cyI6ICJQRU5ESU5HIgogICAgICAgICAgICB9LAogICAgICAgICAgICAKICAgICAgICAgICAgIyBPbi10cmlnZ2VyIGNob3JlcwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAidGl0bGUiOiAiR3JvY2VyeSBzaG9wcGluZyIsCiAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiV2Vla2x5IGdyb2Nlcnkgc2hvcHBpbmcgdHJpcCIsCiAgICAgICAgICAgICAgICAiZnJlcXVlbmN5IjogIk9OX1RSSUdHRVIiLAogICAgICAgICAgICAgICAgInBvaW50cyI6IDMwLAogICAgICAgICAgICAgICAgInJvb20iOiAiU2hvcHBpbmciLAogICAgICAgICAgICAgICAgImFzc2lnbmVkX3RvX2lkIjogbG91LmlkLAogICAgICAgICAgICAgICAgInN0YXR1cyI6ICJQRU5ESU5HIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAidGl0bGUiOiAiQ2FyIHdhc2giLAogICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIldhc2ggYW5kIHZhY3V1bSBmYW1pbHkgY2FyIiwKICAgICAgICAgICAgICAgICJmcmVxdWVuY3kiOiAiT05fVFJJR0dFUiIsCiAgICAgICAgICAgICAgICAicG9pbnRzIjogMjAsCiAgICAgICAgICAgICAgICAicm9vbSI6ICJEcml2ZXdheSIsCiAgICAgICAgICAgICAgICAiYXNzaWduZWRfdG9faWQiOiB4YW5kZXIuaWQsCiAgICAgICAgICAgICAgICAic3RhdHVzIjogIlBFTkRJTkciCiAgICAgICAgICAgIH0sCiAgICAgICAgXQogICAgICAgIAogICAgICAgIGZvciBjaG9yZV9kYXRhIGluIGRlbW9fY2hvcmVzOgogICAgICAgICAgICBjaG9yZSA9IENob3JlKCoqY2hvcmVfZGF0YSkKICAgICAgICAgICAgZGIuYWRkKGNob3JlKQogICAgICAgICAgICAKICAgICAgICAgICAgIyBQcmV0dHkgcHJpbnQgd2l0aCBlbW9qaXMKICAgICAgICAgICAgc3RhdHVzX2Vtb2ppID0gIuKchSIgaWYgY2hvcmVfZGF0YVsic3RhdHVzIl0gPT0gIkNPTVBMRVRFRCIgZWxzZSAi8J+UhCIgaWYgY2hvcmVfZGF0YVsic3RhdHVzIl0gPT0gIklOX1BST0dSRVNTIiBlbHNlICLij7MiCiAgICAgICAgICAgIHByaW50KGYiICB7c3RhdHVzX2Vtb2ppfSB7Y2hvcmVfZGF0YVsndGl0bGUnXX0gLSB7Y2hvcmVfZGF0YVsnZnJlcXVlbmN5J119ICh7Y2hvcmVfZGF0YVsncm9vbSddfSkiKQogICAgICAgIAogICAgICAgIGRiLmNvbW1pdCgpCiAgICAgICAgcHJpbnQoZiJcbuKchSBEYXRhYmFzZSBpbml0aWFsaXplZCBzdWNjZXNzZnVsbHkgd2l0aCB7bGVuKHVzZXJzX2RhdGEpfSB1c2VycyBhbmQge2xlbihkZW1vX2Nob3Jlcyl9IGRlbW8gY2hvcmVzISIpCiAgICAgICAgcHJpbnQoIlxu8J+UkSBMb2dpbiBjcmVkZW50aWFsczoiKQogICAgICAgIHByaW50KCIgICBVc2VybmFtZTogamVzcyAoYWRtaW4pIG9yIGxvdSwgd2lsbGlhbSwgeGFuZGVyLCBiZWxsYSIpCiAgICAgICAgcHJpbnQoIiAgIFBhc3N3b3JkOiBwYXNzd29yZDEyMyIpCiAgICAgICAgCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoZiLinYwgRXJyb3IgaW5pdGlhbGl6aW5nIGRhdGFiYXNlOiB7ZX0iKQogICAgICAgIGRiLnJvbGxiYWNrKCkKICAgICAgICByYWlzZQogICAgZmluYWxseToKICAgICAgICBkYi5jbG9zZSgpCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgaW5pdF9kYigpCg==