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

Reply via email to