0

我想按原样从数据库加载表,但我不知道表结构。如果我跑

from pydal import DAL
db = DAL('mysql://phpmyadmin:123@localhost/my_db', lazy_tables=True)
t = db.table1

我得到错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/andrey/python/folder/lib/python3.8/site-packages/pydal/base.py", line 790, in __getattr__
    return BasicStorage.__getattribute__(self, key)

如果我使用db.define_table('table1')

from pydal import DAL
db = DAL('mysql://phpmyadmin:123@localhost/my_db', lazy_tables=True)
db.define_table('table1')
t = db.table1

我收到另一个错误

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/andrey/python/hyperc/lib/python3.8/site-packages/pydal/base.py", line 785, in __getattr__
    return self.lazy_define_table(tablename, *fields, **kwargs)
  File "/home/andrey/python/hyperc/lib/python3.8/site-packages/pydal/base.py", line 716, in lazy_define_table
    self._adapter.create_table(
  File "/home/andrey/python/hyperc/lib/python3.8/site-packages/pydal/adapters/base.py", line 943, in create_table
    return self.migrator.create_table(*args, **kwargs)
  File "/home/andrey/python/hyperc/lib/python3.8/site-packages/pydal/migrator.py", line 331, in create_table
    self.log(
  File "/home/andrey/python/hyperc/lib/python3.8/site-packages/pydal/migrator.py", line 579, in log
    logfile = self.file_open(table._loggername, "ab")
  File "/home/andrey/python/hyperc/lib/python3.8/site-packages/pydal/migrator.py", line 587, in file_open
    fileobj = portalocker.LockedFile(filename, mode)
  File "/home/andrey/python/hyperc/lib/python3.8/site-packages/pydal/contrib/portalocker.py", line 186, in __init__
    self.file = open_file(filename, mode.replace("w", "a"))
  File "/home/andrey/python/hyperc/lib/python3.8/site-packages/pydal/contrib/portalocker.py", line 171, in open_file
    f = open(filename, mode)
FileNotFoundError: [Errno 2] No such file or directory: 'databases/sql.log'
4

0 回答 0