Hello Mike,
Thanks for replying so quickly, I appreciate that. Below is the engine I am using and the output of the code you mentioned:
params = urllib.parse.quote_plus('Driver={SQL Server};'\
"Server=*******;"\
"DSN=TreasuryMSSQL;"
"Trusted_Connection=yes;"
"UID=Felipe.Araya;"
"PWD=*******,"
)
engine = db.create_engine("mssql+pyodbc:///?odbc_connect=%s" % params, echo=debug)
insp = inspect(engine)
print(insp.get_table_names())
# I know you mentioned that "dbo" shouldn't be specified since it comes by default, but if I don't specify a simply get nothing, in fact the only way in which I have succeeded reflecting the table from mssql was using CORE and specifying "dbo" in MetaData(engine, schema="dbo"), otherwise it wouldn't work, something similar happened when I wanted to map a class from the domain to the database the only way in which I could do it was by doing:
class User(Base):
id ...
name.....
User.__table__.schema = "dbo"
Base.metadata.create_all()engine
btw: I have binge-watched a couple of your 3hr videos on Youtube, they are great man, thanks for those!
# Here is the output of the "echo"
2019-11-27 20:03:44,722 INFO sqlalchemy.engine.base.Engine SELECT CAST(SERVERPROPERTY('ProductVersion') AS VARCHAR)
INFO:sqlalchemy.engine.base.Engine:SELECT CAST(SERVERPROPERTY('ProductVersion') AS VARCHAR)
2019-11-27 20:03:44,724 INFO sqlalchemy.engine.base.Engine ()
INFO:sqlalchemy.engine.base.Engine:()
2019-11-27 20:03:44,736 DEBUG sqlalchemy.engine.base.Engine Col ('',)
DEBUG:sqlalchemy.engine.base.Engine:Col ('',)
2019-11-27 20:03:44,738 DEBUG sqlalchemy.engine.base.Engine Row ('12.0.2000.8',)
DEBUG:sqlalchemy.engine.base.Engine:Row ('12.0.2000.8',)
2019-11-27 20:03:44,739 INFO sqlalchemy.engine.base.Engine SELECT schema_name()
INFO:sqlalchemy.engine.base.Engine:SELECT schema_name()
2019-11-27 20:03:44,740 INFO sqlalchemy.engine.base.Engine ()
INFO:sqlalchemy.engine.base.Engine:()
2019-11-27 20:03:44,746 DEBUG sqlalchemy.engine.base.Engine Col ('',)
DEBUG:sqlalchemy.engine.base.Engine:Col ('',)
2019-11-27 20:03:44,747 DEBUG sqlalchemy.engine.base.Engine Row ('guest',)
DEBUG:sqlalchemy.engine.base.Engine:Row ('guest',)
2019-11-27 20:03:44,754 INFO sqlalchemy.engine.base.Engine SELECT CAST('test plain returns' AS VARCHAR(60)) AS anon_1
INFO:sqlalchemy.engine.base.Engine:SELECT CAST('test plain returns' AS VARCHAR(60)) AS anon_1
2019-11-27 20:03:44,755 INFO sqlalchemy.engine.base.Engine ()
INFO:sqlalchemy.engine.base.Engine:()
2019-11-27 20:03:44,760 INFO sqlalchemy.engine.base.Engine SELECT CAST('test unicode returns' AS NVARCHAR(60)) AS anon_1
INFO:sqlalchemy.engine.base.Engine:SELECT CAST('test unicode returns' AS NVARCHAR(60)) AS anon_1
2019-11-27 20:03:44,762 INFO sqlalchemy.engine.base.Engine ()
INFO:sqlalchemy.engine.base.Engine:()
2019-11-27 20:03:44,774 INFO sqlalchemy.engine.base.Engine SELECT [INFORMATION_SCHEMA].[TABLES].[TABLE_NAME]
FROM [INFORMATION_SCHEMA].[TABLES]
WHERE [INFORMATION_SCHEMA].[TABLES].[TABLE_SCHEMA] = CAST(? AS NVARCHAR(max)) AND [INFORMATION_SCHEMA].[TABLES].[TABLE_TYPE] = CAST(? AS NVARCHAR(max)) ORDER BY [INFORMATION_SCHEMA].[TABLES].[TABLE_NAME]
INFO:sqlalchemy.engine.base.Engine:SELECT [INFORMATION_SCHEMA].[TABLES].[TABLE_NAME]
FROM [INFORMATION_SCHEMA].[TABLES]
WHERE [INFORMATION_SCHEMA].[TABLES].[TABLE_SCHEMA] = CAST(? AS NVARCHAR(max)) AND [INFORMATION_SCHEMA].[TABLES].[TABLE_TYPE] = CAST(? AS NVARCHAR(max)) ORDER BY [INFORMATION_SCHEMA].[TABLES].[TABLE_NAME]
2019-11-27 20:03:44,776 INFO sqlalchemy.engine.base.Engine ('guest', 'BASE TABLE')
INFO:sqlalchemy.engine.base.Engine:('guest', 'BASE TABLE')
2019-11-27 20:03:44,785 DEBUG sqlalchemy.engine.base.Engine Col ('TABLE_NAME',)
DEBUG:sqlalchemy.engine.base.Engine:Col ('TABLE_NAME',)