Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1iu0DT-0004hD-2j for pgsql-gui-dev@arkaria.postgresql.org; Tue, 21 Jan 2020 20:33:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1iu0DP-0001KF-T0 for pgsql-gui-dev@arkaria.postgresql.org; Tue, 21 Jan 2020 20:33:35 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1iu0DP-0001K8-HC for pgsql-gui-dev@lists.postgresql.org; Tue, 21 Jan 2020 20:33:35 +0000 Received: from mail-vk1-xa2b.google.com ([2607:f8b0:4864:20::a2b]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1iu0DH-00075Y-J5 for pgsql-gui-dev@lists.postgresql.org; Tue, 21 Jan 2020 20:33:34 +0000 Received: by mail-vk1-xa2b.google.com with SMTP id h13so1313481vkn.10 for ; Tue, 21 Jan 2020 12:33:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xtremedatainc-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=elUZr4VpAKYmAnPnNSbPB8BGcGAr3OzColJ7rpidZGw=; b=YacMVvJ9qB5RBolZ4ASCKQYrPZcwbEkmuHPYQzCpZWTk7To6DE5fVGwmAjvaNihlO0 vfmC9FpCvYr0Omwxhfg/0VBhq58t6b6jEpNjvaF3w2gTqrHFwxVtYE2ZvvNm4XHBLEG1 c/2b46KgZOvg5SeRv3Z+iqn3ZyLitW6pfdogr3T7JnI7T4S/HOFH72rrBaMHTo/fh6MA hk9NuqixxnyN/9BKcS9f6ogu2cDvfXTLk2Acnd/KqEeoqlSP2+YVg9zR+EJc3ne6XpJ0 W9nklvsNOjrjnqAXpmENglOgtwxl08IjfKUO2QdQp040L+UbKcckytAeMxnure4YyRM5 UNmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=elUZr4VpAKYmAnPnNSbPB8BGcGAr3OzColJ7rpidZGw=; b=ezld5pS8/blZ1DRFNgYLJOMdmHRSo5TOzMYKFR38OZTfwegkyzXQsNG4adr/DN5k/4 xaNW6qapHJfAMKzEPiy6cukgum95IY7/OSs3pMs+5k/x4HhvmOI5ID8pqTw328NKb8k2 F0oHaDemgPs3iDyBFKxTO7Yi5ZNavr8KxD7dhvObA//9HVwJAEcJHT6RXUf68R0yzEkm HQKm+bqkaKHkXuw02if9hfUz5VHzneiHqSij2vu/kVD9oGsWa3sukRE4Hmn0fqWTMI2R amVbYbIbyPMn7fCpK/mPC9h0QDE7mydTyb6hwOAjLMIbGS1yQR6HjxCnEw2oMGeSr/SL BJ2Q== X-Gm-Message-State: APjAAAXrkRL89lxnB4dsEtl5I5F7EqUziIucw8eL40MWYka7iPIJA8Ps aQDdHSJrPhuR143bpriEydjUsAgBwBhoTrCQNWEbDHqGs64= X-Google-Smtp-Source: APXvYqz4dmD8zSTcEDLAVajN7PYGM09T1zebSwCNPb/AiM44zYLfDbC19nEwgEOUgcYO+KKBwmLlJ3Idy/WkYJZCw3s= X-Received: by 2002:ac5:c15a:: with SMTP id e26mr3963726vkk.62.1579638804399; Tue, 21 Jan 2020 12:33:24 -0800 (PST) MIME-Version: 1.0 From: Radoslaw Garbacz Date: Tue, 21 Jan 2020 14:33:13 -0600 Message-ID: Subject: flask db migrate error To: pgsql-gui-dev@lists.postgresql.org Content-Type: multipart/alternative; boundary="000000000000cf5cb1059cac5179" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000cf5cb1059cac5179 Content-Type: text/plain; charset="UTF-8" Hi, As this is my first post I'd like to thank you for your work on this project. I have a question regarding modifying configuration db model for pgadmin4: When trying to create a new migration file I get an error: sqlalchemy.exc.NoSuchTableError: user_old The command used: FLASK_APP=pgAdmin4.py flask db migrate -m "Add data groups" The db is initialized with: python setup.py, I also tried: FLASK_APP=pgAdmin4.py flask db init When commenting out (just for tests) content of "web/migrations/versions/35f29b1701bd_.py" I get a similar error but with "server_old". So my question is what is the correct procedure to modify configuration db or how to solve the mentioned issue? Thanks in advance, DETAILS: * pgadmin4 version: cloned from master with latest commit on Jan 13, 2020 * Changes in "model/__init__.py": SCHEMA_VERSION = 25 ... class DataGroup(db.Model): """Define a data group for the treeview""" __tablename__ = 'datagroup' id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) name = db.Column(db.String(128), nullable=False) __table_args__ = (db.UniqueConstraint('user_id', 'name'),) * migrate command exception details: ... File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/alembic/util/compat.py", line 173, in load_module_py spec.loader.exec_module(module) File "", line 728, in exec_module File "", line 219, in _call_with_frames_removed File "migrations/env.py", line 94, in run_migrations_online() File "migrations/env.py", line 87, in run_migrations_online context.run_migrations() File "", line 8, in run_migrations File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/alembic/runtime/environment.py", line 846, in run_migrations self.get_context().run_migrations(**kw) File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/alembic/runtime/migration.py", line 507, in run_migrations for step in self._migrations_fn(heads, self): File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/alembic/command.py", line 190, in retrieve_migrations revision_context.run_autogenerate(rev, context) File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/alembic/autogenerate/api.py", line 442, in run_autogenerate self._run_environment(rev, migration_context, True) File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/alembic/autogenerate/api.py", line 482, in _run_environment autogen_context, migration_script File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/alembic/autogenerate/compare.py", line 25, in _populate_migration_script _produce_net_changes(autogen_context, upgrade_ops) File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/alembic/autogenerate/compare.py", line 51, in _produce_net_changes autogen_context, upgrade_ops, schemas File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/alembic/util/langhelpers.py", line 303, in go fn(*arg, **kw) File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/alembic/autogenerate/compare.py", line 83, in _autogen_for_tables autogen_context, File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/alembic/autogenerate/compare.py", line 195, in _compare_tables inspector.reflecttable(t, None) File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/sqlalchemy/engine/reflection.py", line 669, in reflecttable reflection_options, File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/sqlalchemy/engine/reflection.py", line 848, in _reflect_fk **reflection_options File "", line 2, in __new__ File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/sqlalchemy/util/deprecations.py", line 128, in warned return fn(*args, **kwargs) File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/sqlalchemy/sql/schema.py", line 506, in __new__ metadata._remove_table(name, schema) File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__ compat.reraise(exc_type, exc_value, exc_tb) File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/sqlalchemy/util/compat.py", line 153, in reraise raise value File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/sqlalchemy/sql/schema.py", line 501, in __new__ table._init(name, metadata, *args, **kw) File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/sqlalchemy/sql/schema.py", line 595, in _init resolve_fks=resolve_fks, File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/sqlalchemy/sql/schema.py", line 619, in _autoload _extend_on=_extend_on, File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1615, in run_callable return callable_(self, *args, **kwargs) File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/sqlalchemy/engine/default.py", line 460, in reflecttable table, include_columns, exclude_columns, resolve_fks, **opts File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/sqlalchemy/engine/reflection.py", line 655, in reflecttable raise exc.NoSuchTableError(table.name) sqlalchemy.exc.NoSuchTableError: user_old -- Best Regards, Radoslaw Garbacz XtremeData Incorporated --000000000000cf5cb1059cac5179 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

As this is my first post= I'd like to thank you for your work on this project.

I have a question regarding modifying configuration db model for pg= admin4:
When trying to create a new migration file I g= et an error: sqlalchemy.exc.NoSuchTableError: user_old

=
The command used: FLASK_APP=3DpgAdmin4.py flask db migrate -m "Ad= d data groups"
The db is initialized with: python setup.py, = I also tried: FLASK_APP=3DpgAdmin4.py flask db init

When commenting out (just for tests) content of "web/migrations/vers= ions/35f29b1701bd_.py" I get a similar error but with "server_old= ".
So my question is what is the correct procedure to modify= configuration db or how to solve the mentioned issue?

Thanks in advance,

DETAILS:

* pgadmin4 version: cloned from master with latest commit o= n Jan 13, 2020

* Changes in "model/__init__.py"= ;:
SCHEMA_VERSION =3D 25
...
class DataGroup(= db.Model):
=C2=A0 =C2=A0 """Define a data group for the t= reeview"""
=C2=A0 =C2=A0 __tablename__ =3D 'datagroup= '
=C2=A0 =C2=A0 id =3D db.Column(db.Integer, primary_key=3DTrue)
= =C2=A0 =C2=A0 user_id =3D db.Column(db.Integer, db.ForeignKey('user.id'), nullable=3DFalse)

=C2=A0 =C2= =A0 name =3D db.Column(db.String(128), nullable=3DFalse)
=C2=A0 =C2=A0 _= _table_args__ =3D (db.UniqueConstraint('user_id', 'name'),)=


* migrate command exception de= tails:
...
=C2=A0File "/home/rga/.virtualenvs/pgad= min4/lib/python3.7/site-packages/alembic/util/compat.py", line 173, in= load_module_py
=C2=A0 =C2=A0 spec.loader.exec_module(module)
=C2=A0 = File "<frozen importlib._bootstrap_external>", line 728, in= exec_module
=C2=A0 File "<frozen importlib._bootstrap>"= , line 219, in _call_with_frames_removed
=C2=A0 File "migrations/en= v.py", line 94, in <module>
=C2=A0 =C2=A0 run_migrations_onli= ne()
=C2=A0 File "migrations/env.py", line 87, in run_migratio= ns_online
=C2=A0 =C2=A0 context.run_migrations()
=C2=A0 File "&l= t;string>", line 8, in run_migrations
=C2=A0 File "/home/rg= a/.virtualenvs/pgadmin4/lib/python3.7/site-packages/alembic/runtime/environ= ment.py", line 846, in run_migrations
=C2=A0 =C2=A0 self.get_contex= t().run_migrations(**kw)
=C2=A0 File "/home/rga/.virtualenvs/pgadmi= n4/lib/python3.7/site-packages/alembic/runtime/migration.py", line 507= , in run_migrations
=C2=A0 =C2=A0 for step in self._migrations_fn(heads,= self):
=C2=A0 File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/= site-packages/alembic/command.py", line 190, in retrieve_migrations=C2=A0 =C2=A0 revision_context.run_autogenerate(rev, context)
=C2=A0 Fi= le "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/alembi= c/autogenerate/api.py", line 442, in run_autogenerate
=C2=A0 =C2=A0= self._run_environment(rev, migration_context, True)
=C2=A0 File "/= home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/alembic/autogene= rate/api.py", line 482, in _run_environment
=C2=A0 =C2=A0 autogen_c= ontext, migration_script
=C2=A0 File "/home/rga/.virtualenvs/pgadmi= n4/lib/python3.7/site-packages/alembic/autogenerate/compare.py", line = 25, in _populate_migration_script
=C2=A0 =C2=A0 _produce_net_changes(aut= ogen_context, upgrade_ops)
=C2=A0 File "/home/rga/.virtualenvs/pgad= min4/lib/python3.7/site-packages/alembic/autogenerate/compare.py", lin= e 51, in _produce_net_changes
=C2=A0 =C2=A0 autogen_context, upgrade_ops= , schemas
=C2=A0 File "/home/rga/.virtualenvs/pgadmin4/lib/python3.= 7/site-packages/alembic/util/langhelpers.py", line 303, in go
=C2= =A0 =C2=A0 fn(*arg, **kw)
=C2=A0 File "/home/rga/.virtualenvs/pgadm= in4/lib/python3.7/site-packages/alembic/autogenerate/compare.py", line= 83, in _autogen_for_tables
=C2=A0 =C2=A0 autogen_context,
=C2=A0 Fil= e "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/alembic= /autogenerate/compare.py", line 195, in _compare_tables
=C2=A0 =C2= =A0 inspector.reflecttable(t, None)
=C2=A0 File "/home/rga/.virtual= envs/pgadmin4/lib/python3.7/site-packages/sqlalchemy/engine/reflection.py&q= uot;, line 669, in reflecttable
=C2=A0 =C2=A0 reflection_options,
=C2= =A0 File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/= sqlalchemy/engine/reflection.py", line 848, in _reflect_fk
=C2=A0 = =C2=A0 **reflection_options
=C2=A0 File "<string>", line= 2, in __new__
=C2=A0 File "/home/rga/.virtualenvs/pgadmin4/lib/pyt= hon3.7/site-packages/sqlalchemy/util/deprecations.py", line 128, in wa= rned
=C2=A0 =C2=A0 return fn(*args, **kwargs)
=C2=A0 File "/home= /rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/sqlalchemy/sql/schem= a.py", line 506, in __new__
=C2=A0 =C2=A0 metadata._remove_table(na= me, schema)
=C2=A0 File "/home/rga/.virtualenvs/pgadmin4/lib/python= 3.7/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit_= _
=C2=A0 =C2=A0 compat.reraise(exc_type, exc_value, exc_tb)
=C2=A0 Fi= le "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/sqlalc= hemy/util/compat.py", line 153, in reraise
=C2=A0 =C2=A0 raise valu= e
=C2=A0 File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-p= ackages/sqlalchemy/sql/schema.py", line 501, in __new__
=C2=A0 =C2= =A0 table._init(name, metadata, *args, **kw)
=C2=A0 File "/home/rga= /.virtualenvs/pgadmin4/lib/python3.7/site-packages/sqlalchemy/sql/schema.py= ", line 595, in _init
=C2=A0 =C2=A0 resolve_fks=3Dresolve_fks,
= =C2=A0 File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packag= es/sqlalchemy/sql/schema.py", line 619, in _autoload
=C2=A0 =C2=A0 = _extend_on=3D_extend_on,
=C2=A0 File "/home/rga/.virtualenvs/pgadmi= n4/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1615, = in run_callable
=C2=A0 =C2=A0 return callable_(self, *args, **kwargs)=C2=A0 File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packa= ges/sqlalchemy/engine/default.py", line 460, in reflecttable
=C2=A0= =C2=A0 table, include_columns, exclude_columns, resolve_fks, **opts
=C2= =A0 File "/home/rga/.virtualenvs/pgadmin4/lib/python3.7/site-packages/= sqlalchemy/engine/reflection.py", line 655, in reflecttable
=C2=A0 = =C2=A0 raise exc.NoSuchTableError(table.name<= /a>)
sqlalchemy.exc.NoSuchTableError: user_old

<= div>
--
Best Regards,=

Radoslaw Garbacz
XtremeData Incorporated
--000000000000cf5cb1059cac5179--