dstandish commented on a change in pull request #6370: AIRFLOW-5701: Don't
clear xcom explicitly before execution
URL: https://github.com/apache/airflow/pull/6370#discussion_r339318145
##########
File path: airflow/models/xcom.py
##########
@@ -43,16 +43,14 @@ class XCom(Base, LoggingMixin):
"""
__tablename__ = "xcom"
- id = Column(Integer, primary_key=True)
- key = Column(String(512))
+ key = Column(String(512), primary_key=True, nullable=False)
value = Column(LargeBinary)
- timestamp = Column(
- UtcDateTime, default=timezone.utcnow, nullable=False)
- execution_date = Column(UtcDateTime, nullable=False)
+ timestamp = Column(UtcDateTime, default=timezone.utcnow, nullable=False)
+ execution_date = Column(UtcDateTime, primary_key=True, nullable=False)
# source information
- task_id = Column(String(ID_LEN), nullable=False)
- dag_id = Column(String(ID_LEN), nullable=False)
+ task_id = Column(String(ID_LEN), primary_key=True, nullable=False)
+ dag_id = Column(String(ID_LEN), primary_key=True, nullable=False)
__table_args__ = (
Index('idx_xcom_dag_task_date', dag_id, task_id, execution_date,
unique=False),
Review comment:
Here is the error message:
```
~/code/airflow master ⇡
v1-10 ❯ airflow db upgrade
/Users/dstandish/code/airflow/airflow/models/dagbag.py:21:
DeprecationWarning: the imp module is deprecated in favour of importlib; see
the module's documentation for alternative uses
import imp
DB: sqlite:////Users/dstandish/airflow/airflow.db
[2019-10-26 15:23:49,454] {db.py:318} INFO - Creating tables
INFO [alembic.runtime.migration] Context impl SQLiteImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
Traceback (most recent call last):
File
"/Users/dstandish/.virtualenvs/v1-10/lib/python3.7/site-packages/alembic/script/base.py",
line 162, in _catch_revision_errors
yield
File
"/Users/dstandish/.virtualenvs/v1-10/lib/python3.7/site-packages/alembic/script/base.py",
line 364, in _upgrade_revs
revs = list(revs)
File
"/Users/dstandish/.virtualenvs/v1-10/lib/python3.7/site-packages/alembic/script/revision.py",
line 819, in _iterate_revisions
select_for_downgrade and requested_lowers
File
"/Users/dstandish/.virtualenvs/v1-10/lib/python3.7/site-packages/alembic/script/revision.py",
line 814, in <genexpr>
rev.revision
File
"/Users/dstandish/.virtualenvs/v1-10/lib/python3.7/site-packages/alembic/script/revision.py",
line 746, in _iterate_related_revisions
", ".join(r.revision for r in overlaps),
alembic.script.revision.RevisionError: Requested revision a56c9515abdc
overlaps with other requested revisions 004c1210f153, 74effc47d867
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/Users/dstandish/.virtualenvs/v1-10/bin/airflow", line 7, in <module>
exec(compile(f.read(), __file__, 'exec'))
File "/Users/dstandish/code/airflow/airflow/bin/airflow", line 39, in
<module>
args.func(args)
File "/Users/dstandish/code/airflow/airflow/utils/cli.py", line 74, in
wrapper
return f(*args, **kwargs)
File "/Users/dstandish/code/airflow/airflow/bin/cli.py", line 1236, in
upgradedb
db.upgradedb()
File "/Users/dstandish/code/airflow/airflow/utils/db.py", line 326, in
upgradedb
command.upgrade(config, 'heads')
File
"/Users/dstandish/.virtualenvs/v1-10/lib/python3.7/site-packages/alembic/command.py",
line 298, in upgrade
script.run_env()
File
"/Users/dstandish/.virtualenvs/v1-10/lib/python3.7/site-packages/alembic/script/base.py",
line 489, in run_env
util.load_python_file(self.dir, "env.py")
File
"/Users/dstandish/.virtualenvs/v1-10/lib/python3.7/site-packages/alembic/util/pyfiles.py",
line 98, in load_python_file
module = load_module_py(module_id, path)
File
"/Users/dstandish/.virtualenvs/v1-10/lib/python3.7/site-packages/alembic/util/compat.py",
line 173, in load_module_py
spec.loader.exec_module(module)
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in
_call_with_frames_removed
File "/Users/dstandish/code/airflow/airflow/migrations/env.py", line 103,
in <module>
run_migrations_online()
File "/Users/dstandish/code/airflow/airflow/migrations/env.py", line 97,
in run_migrations_online
context.run_migrations()
File "<string>", line 8, in run_migrations
File
"/Users/dstandish/.virtualenvs/v1-10/lib/python3.7/site-packages/alembic/runtime/environment.py",
line 846, in run_migrations
self.get_context().run_migrations(**kw)
File
"/Users/dstandish/.virtualenvs/v1-10/lib/python3.7/site-packages/alembic/runtime/migration.py",
line 507, in run_migrations
for step in self._migrations_fn(heads, self):
File
"/Users/dstandish/.virtualenvs/v1-10/lib/python3.7/site-packages/alembic/command.py",
line 287, in upgrade
return script._upgrade_revs(revision, rev)
File
"/Users/dstandish/.virtualenvs/v1-10/lib/python3.7/site-packages/alembic/script/base.py",
line 369, in _upgrade_revs
for script in reversed(list(revs))
File
"/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/contextlib.py",
line 130, in __exit__
self.gen.throw(type, value, traceback)
File
"/Users/dstandish/.virtualenvs/v1-10/lib/python3.7/site-packages/alembic/script/base.py",
line 196, in _catch_revision_errors
compat.raise_from_cause(util.CommandError(err.args[0]))
File
"/Users/dstandish/.virtualenvs/v1-10/lib/python3.7/site-packages/alembic/util/compat.py",
line 297, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=exc_value)
File
"/Users/dstandish/.virtualenvs/v1-10/lib/python3.7/site-packages/alembic/util/compat.py",
line 290, in reraise
raise value.with_traceback(tb)
File
"/Users/dstandish/.virtualenvs/v1-10/lib/python3.7/site-packages/alembic/script/base.py",
line 162, in _catch_revision_errors
yield
File
"/Users/dstandish/.virtualenvs/v1-10/lib/python3.7/site-packages/alembic/script/base.py",
line 364, in _upgrade_revs
revs = list(revs)
File
"/Users/dstandish/.virtualenvs/v1-10/lib/python3.7/site-packages/alembic/script/revision.py",
line 819, in _iterate_revisions
select_for_downgrade and requested_lowers
File
"/Users/dstandish/.virtualenvs/v1-10/lib/python3.7/site-packages/alembic/script/revision.py",
line 814, in <genexpr>
rev.revision
File
"/Users/dstandish/.virtualenvs/v1-10/lib/python3.7/site-packages/alembic/script/revision.py",
line 746, in _iterate_related_revisions
", ".join(r.revision for r in overlaps),
alembic.util.exc.CommandError: Requested revision a56c9515abdc overlaps with
other requested revisions 004c1210f153, 74effc47d867
```
To reproduce here's what I did:
```
git pull upstream master # ensure we have latest
git checkout v-10-stable # 1.10.6rc2
rm ~/airflow/airflow.db
airflow initdb
git checkout master
airflow db upgrade
```
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services