Closed Surfmobile closed 4 years ago
Cause here was an old (possibly added as a fake migration?) django_peeringdb
migration entry in thedjango_migrations
table in a mysql database that was used with an older version of the client a year or so ago.
It was also the last migration inserted there, and removing the row fixed the issue.
I confirm that this was fixed:
mysql> select * from django_migrations -> ; +----+------------------+---------------------------------------+---------------------+ | id | app | name | applied | +----+------------------+---------------------------------------+---------------------+ | 1 | contenttypes | 0001_initial | 2016-04-13 19:22:40 | | 2 | auth | 0001_initial | 2016-04-13 19:22:40 | | 3 | admin | 0001_initial | 2016-04-13 19:22:40 | | 4 | contenttypes | 0002_remove_content_type_name | 2016-04-13 19:22:40 | | 5 | auth | 0002_alter_permission_name_max_length | 2016-04-13 19:22:40 | | 6 | auth | 0003_alter_user_email_max_length | 2016-04-13 19:22:40 | | 7 | auth | 0004_alter_user_username_opts | 2016-04-13 19:22:40 | | 8 | auth | 0005_alter_user_last_login_null | 2016-04-13 19:22:40 | | 9 | auth | 0006_require_contenttypes_0002 | 2016-04-13 19:22:40 | | 10 | sessions | 0001_initial | 2016-04-13 19:22:58 | | 11 | bgpsessions | 0001_initial | 2016-04-13 19:24:33 | | 12 | bgpsessions | 0002_auto_20160413_1927 | 2016-04-13 19:27:59 | | 13 | bgpsessions | 0003_auto_20160413_1931 | 2016-04-13 19:31:15 | | 14 | bgpsessions | 0004_auto_20160413_1936 | 2016-04-13 19:36:05 | | 15 | bgpsessions | 0005_locationrouter | 2016-04-13 19:36:24 | | 16 | bgpsessions | 0006_auto_20160413_1939 | 2016-04-13 19:39:06 | | 17 | bgpsessions | 0007_locationrouter | 2016-04-13 19:39:51 | | 18 | django_peeringdb | 0001_initial | 2018-04-10 16:48:19 | +----+------------------+---------------------------------------+---------------------+ 18 rows in set (0.00 sec)
mysql> delete from django_migrations where id=18; Query OK, 1 row affected (0.03 sec)
After that peeringdb sync ran succesfully:
(pdbvenv) me@peeradmin:~$ peeringdb sync Syncing to https://www.peeringdb.com/api Updating resources: org fac net ix ixfac ixlan ixpfx netfac netixlan poc Fetching & updating all: org Updates to be processed: 16834 Fetching & updating all: fac Updates to be processed: 3457 Fetching & updating all: net Updates to be processed: 17146 Fetching & updating all: ix Updates to be processed: 712 Fetching & updating all: ixfac Updates to be processed: 1859 Fetching & updating all: ixlan Updates to be processed: 751 Fetching & updating all: ixpfx Updates to be processed: 1379 Fetching & updating all: netfac Updates to be processed: 27639 Fetching & updating all: netixlan Updates to be processed: 30163 Fetching & updating all: poc Updates to be processed: 25231 Ignoring object updated after sync began: (poc-33787)
Thank you!
latest version does not want to replicate the DB anymore, any ideas?
(pdbvenv) me@peeradmin:~$ peeringdb --version peeringdb 1.0.0 (pdbvenv) me@peeradmin:~$ peeringdb sync Syncing to https://www.peeringdb.com/api Updating resources: org fac net ix ixfac ixlan ixpfx netfac netixlan poc Fetching & updating all: org Traceback (most recent call last): File "/home/me/pdbvenv/bin/peeringdb", line 8, in
sys.exit(main())
File "/home/me/pdbvenv/local/lib/python2.7/site-packages/peeringdb/cli.py", line 62, in main
return handler(config=cfg, vars(options))
File "/home/me/pdbvenv/local/lib/python2.7/site-packages/peeringdb/commands.py", line 20, in _wrapped
r = func(*a, *k)
File "/home/me/pdbvenv/local/lib/python2.7/site-packages/peeringdb/commands.py", line 219, in handle
client.update_all(rs)
File "/home/me/pdbvenv/local/lib/python2.7/site-packages/peeringdb/_update.py", line 66, in update_all
self._atomic_update(lambda: ctx.sync_resource(r, since=since))
File "/home/me/pdbvenv/local/lib/python2.7/site-packages/peeringdb/_update.py", line 78, in _atomic_update
sync_func()
File "/home/me/pdbvenv/local/lib/python2.7/site-packages/peeringdb/_update.py", line 66, in
self._atomic_update(lambda: ctx.sync_resource(r, since=since))
File "/home/me/pdbvenv/local/lib/python2.7/site-packages/peeringdb/_tasks_sequential.py", line 76, in _wrapped
gen = func( a, k)
File "/home/me/pdbvenv/local/lib/python2.7/site-packages/peeringdb/_update.py", line 102, in sync_resource
data, e = self.fetcher.fetch_all_latest(res, 0, since=since)
File "/home/me/pdbvenv/local/lib/python2.7/site-packages/peeringdb/_fetch.py", line 62, in fetch_all_latest
since = backend.last_change(backend.get_concrete(R))
File "/home/me/pdbvenv/local/lib/python2.7/site-packages/peeringdb/backend.py", line 26, in wrapped
return fn(*args, kwargs)
File "/home/me/pdbvenv/local/lib/python2.7/site-packages/django_peeringdb/client_adaptor/backend.py", line 89, in last_change
upd = concrete.handleref.last_change()
File "/home/me/pdbvenv/local/lib/python2.7/site-packages/django_handleref/manager.py", line 101, in last_change
return self.get_queryset().last_change(kwargs)
File "/home/me/pdbvenv/local/lib/python2.7/site-packages/django_handleref/manager.py", line 23, in last_change
cdt = self.latest('created')
File "/home/me/pdbvenv/local/lib/python2.7/site-packages/django/db/models/query.py", line 561, in latest
return self._earliest_or_latest(field_name=field_name, direction="-")
File "/home/me/pdbvenv/local/lib/python2.7/site-packages/django/db/models/query.py", line 555, in _earliest_or_latest
return obj.get()
File "/home/me/pdbvenv/local/lib/python2.7/site-packages/django/db/models/query.py", line 374, in get
num = len(clone)
File "/home/me/pdbvenv/local/lib/python2.7/site-packages/django/db/models/query.py", line 232, in len
self._fetch_all()
File "/home/me/pdbvenv/local/lib/python2.7/site-packages/django/db/models/query.py", line 1121, in _fetch_all
self._result_cache = list(self._iterable_class(self))
File "/home/me/pdbvenv/local/lib/python2.7/site-packages/django/db/models/query.py", line 53, in iter
results = compiler.execute_sql(chunked_fetch=self.chunked_fetch)
File "/home/me/pdbvenv/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 899, in execute_sql
raise original_exception
django.db.utils.ProgrammingError: (1146, "Table 'peering.peeringdb_organization' doesn't exist")
config:
(pdbvenv) me@peeradmin:~/.peeringdb$ cat config.yaml orm: backend: django_peeringdb database: engine: mysql host: localhost name: peering password: [removed] port: 3306 user: peering migrate: true secret_key: '' sync: only: [] password: [removed] strip_tz: 1 timeout: 0 url: https://www.peeringdb.com/api user: [removed]