feat: add UUID column to ImportMixin (#11098)

* Add UUID column to ImportMixin

* Fix default value

* Fix lint

* Fix order of downgrade

* Add logging when downgrade fails

* Migrate position_json to contain UUIDs, and add schedule tables

* Save UUID when adding charts to dashboard

* Fix heads

* Rename migration file

* Fix dashboard serialization

* Fix migration script with Postgres

* Fix unique contraint name

* Handle UUID when exporting dashboard

* Fix Dataset PUT

* Add UUID JSON serialization

* Fix tests

* Simplify logic

* Try binary=True
This commit is contained in:
Beto Dealmeida
2020-10-07 09:00:55 -07:00
committed by GitHub
parent 6e0d1b8409
commit 9785667a0d
10 changed files with 198 additions and 12 deletions

View File

@@ -310,7 +310,9 @@ class DashboardEncoder(json.JSONEncoder):
super().__init__(*args, **kwargs)
self.sort_keys = True
def default(self, o: Any) -> Dict[Any, Any]:
def default(self, o: Any) -> Union[Dict[Any, Any], str]:
if isinstance(o, uuid.UUID):
return str(o)
try:
vals = {k: v for k, v in o.__dict__.items() if k != "_sa_instance_state"}
return {"__{}__".format(o.__class__.__name__): vals}