From c87011fb9c21c38e8e4c1ed0a0c777d17b8d690f Mon Sep 17 00:00:00 2001 From: Clayton Sims Date: Sun, 17 May 2020 21:41:52 +0000 Subject: [PATCH] Adds oracle dialect catchers for column length and text type --- commcare_export/writers.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/commcare_export/writers.py b/commcare_export/writers.py index 09b29f61..8f02a14c 100644 --- a/commcare_export/writers.py +++ b/commcare_export/writers.py @@ -272,6 +272,10 @@ def __exit__(self, exc_type, exc_val, exc_tb): def is_postgres(self): return 'postgres' in self.db_url + @property + def is_oracle(self): + return 'oracle' in self.db_url + @property def is_mysql(self): return 'mysql' in self.db_url @@ -291,6 +295,8 @@ def max_column_length(self): if self.is_mssql: # https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers?view=sql-server-2017 return 128 + if self.is_oracle: + return 128 raise Exception("Unknown database dialect: {}".format(self.db_url)) @property @@ -351,6 +357,8 @@ def best_type_for(self, val): return sqlalchemy.UnicodeText(collation=self.collation) elif self.is_mssql: return sqlalchemy.NVARCHAR(collation=self.collation) + if self.is_oracle: + return sqlalchemy.UnicodeText(collation=self.collation) else: raise Exception("Unknown database dialect: {}".format(self.db_url)) else: