Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrations catchup #651

Merged
merged 4 commits into from
Aug 30, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
38 changes: 38 additions & 0 deletions neuroscout/config/datasets/ds001132.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"Sherlock": {
"preproc_address": "https://github.com/neuroscout-datasets/Sherlock/",
"path": "/datasets/raw/ds001132/",
"summary": "Audio/visual presentation of Sherlock episode",
"url": "https://openneuro.org/datasets/ds001132/",
"tasks": {
"sherlockPart1": {
"summary": "Audio/visual watching",
"converters": [
],

"extractors": [
["ComplexTextExtractor", {}],
["PredefinedDictionaryExtractor", {"variables":
{"subtlexusfrequency":["FREQcount", "CDcount", "FREQlow", "Cdlow", "SUBTLWF","Lg10WF", "SUBTLCD", "Lg10CD", "Dom_PoS_SUBTLEX", "Freq_dom_PoS_SUBTLEX", "Percentage_dom_PoS", "All_PoS_SUBTLEX", "All_freqs_SUBTLEX", "Zipf-value"]},
"missing": "n/a"} ],
["PredefinedDictionaryExtractor", {"variables":
{"affect":["V.Mean.Sum", "A.Mean.Sum", "D.Mean.Sum"],
"aoa": ["AoA_Kup"],
"concreteness": ["Conc.M"]},
"missing": "n/a"} ],
["LengthExtractor", {}]

],
"transformations": [
{
"function": "dummy",
"new_name": "speech",
"extractor_name": "ComplexTextExtractor"
}
],
"ingest_args": {
}
}
}
}
}
3 changes: 2 additions & 1 deletion neuroscout/models/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
''' Model hierarchy. '''

from .analysis import (Analysis, Report, NeurovaultCollection,
analysis_predictor)
NeurovaultFileUpload, analysis_predictor)
from .auth import User, Role, roles_users, user_datastore
from .group import GroupPredictor, GroupPredictorValue
from .dataset import Dataset
Expand Down Expand Up @@ -31,6 +31,7 @@
'PredictorCollection',
'Report',
'NeurovaultCollection',
'NeurovaultFileUpload',
'Run',
'analysis_run',
'Stimulus',
Expand Down
22 changes: 20 additions & 2 deletions neuroscout/models/analysis.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,10 +120,28 @@ class NeurovaultCollection(db.Model):
analysis_id = db.Column(db.Text, db.ForeignKey('analysis.hash_id'))
uploaded_at = db.Column(db.DateTime, default=datetime.datetime.utcnow)

collection_id = db.Column(db.Integer, unique=True)

files = db.relationship('NeurovaultFileUpload', backref='collection')


class NeurovaultFileUpload(db.Model):
""" NV file upload """
id = db.Column(db.Integer, primary_key=True)
nv_collection_id = db.Column(
db.Integer, db.ForeignKey('neurovault_collection.id'),
nullable=False)

path = db.Column(db.Text, nullable=False)

task_id = db.Column(db.Text)
collection_id = db.Column(db.Text)
level = db.Column(db.Text, nullable=False)

exception = db.Column(db.Text)
traceback = db.Column(db.Text)

status = db.Column(db.Text, default='PENDING')
__table_args__ = (
db.CheckConstraint(status.in_(['OK', 'FAILED', 'PENDING'])), )
db.CheckConstraint(status.in_(['OK', 'FAILED', 'PENDING'])),
db.CheckConstraint(level.in_(['GROUP', 'SUBJECT'])),
)
49 changes: 49 additions & 0 deletions postgres/migrations/migrations/versions/05df5e3a41f3_.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
"""empty message

Revision ID: 05df5e3a41f3
Revises: d4417864ab88
Create Date: 2019-08-30 16:32:39.066853

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = '05df5e3a41f3'
down_revision = 'd4417864ab88'
branch_labels = None
depends_on = None


def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_table('neurovault_file_upload')
op.add_column('neurovault_collection', sa.Column('status', sa.Text(), nullable=True))
op.add_column('neurovault_collection', sa.Column('task_id', sa.Text(), nullable=True))
op.add_column('neurovault_collection', sa.Column('traceback', sa.Text(), nullable=True))
op.drop_constraint('neurovault_collection_collection_id_key', 'neurovault_collection', type_='unique')
# ### end Alembic commands ###


def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_unique_constraint('neurovault_collection_collection_id_key', 'neurovault_collection', ['collection_id'])
op.drop_column('neurovault_collection', 'traceback')
op.drop_column('neurovault_collection', 'task_id')
op.drop_column('neurovault_collection', 'status')
op.create_table('neurovault_file_upload',
sa.Column('id', sa.INTEGER(), autoincrement=True, nullable=False),
sa.Column('nv_collection_id', sa.INTEGER(), autoincrement=False, nullable=False),
sa.Column('task_id', sa.TEXT(), autoincrement=False, nullable=True),
sa.Column('level', sa.TEXT(), autoincrement=False, nullable=False),
sa.Column('status', sa.TEXT(), autoincrement=False, nullable=True),
sa.Column('exception', sa.TEXT(), autoincrement=False, nullable=True),
sa.Column('path', sa.TEXT(), autoincrement=False, nullable=False),
sa.Column('traceback', sa.TEXT(), autoincrement=False, nullable=True),
sa.CheckConstraint("level = ANY (ARRAY['GROUP'::text, 'SUBJECT'::text])", name='neurovault_file_upload_level_check'),
sa.CheckConstraint("status = ANY (ARRAY['OK'::text, 'FAILED'::text, 'PENDING'::text])", name='neurovault_file_upload_status_check1'),
sa.ForeignKeyConstraint(['nv_collection_id'], ['neurovault_collection.id'], name='neurovault_file_upload_nv_collection_id_fkey'),
sa.PrimaryKeyConstraint('id', name='neurovault_file_upload_pkey')
)
# ### end Alembic commands ###
49 changes: 49 additions & 0 deletions postgres/migrations/migrations/versions/398589c37576_.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
"""empty message

Revision ID: 398589c37576
Revises: 05df5e3a41f3
Create Date: 2019-08-30 16:41:18.575497

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = '398589c37576'
down_revision = '05df5e3a41f3'
branch_labels = None
depends_on = None


def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_table('neurovault_file_upload',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('nv_collection_id', sa.Integer(), nullable=False),
sa.Column('path', sa.Text(), nullable=False),
sa.Column('task_id', sa.Text(), nullable=True),
sa.Column('level', sa.Text(), nullable=False),
sa.Column('exception', sa.Text(), nullable=True),
sa.Column('traceback', sa.Text(), nullable=True),
sa.Column('status', sa.Text(), nullable=True),
sa.CheckConstraint("level IN ('GROUP', 'SUBJECT')"),
sa.CheckConstraint("status IN ('OK', 'FAILED', 'PENDING')"),
sa.ForeignKeyConstraint(['nv_collection_id'], ['neurovault_collection.id'], ),
sa.PrimaryKeyConstraint('id')
)
op.create_unique_constraint(None, 'neurovault_collection', ['collection_id'])
op.drop_column('neurovault_collection', 'status')
op.drop_column('neurovault_collection', 'traceback')
op.drop_column('neurovault_collection', 'task_id')
# ### end Alembic commands ###


def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.add_column('neurovault_collection', sa.Column('task_id', sa.TEXT(), autoincrement=False, nullable=True))
op.add_column('neurovault_collection', sa.Column('traceback', sa.TEXT(), autoincrement=False, nullable=True))
op.add_column('neurovault_collection', sa.Column('status', sa.TEXT(), autoincrement=False, nullable=True))
op.drop_constraint(None, 'neurovault_collection', type_='unique')
op.drop_table('neurovault_file_upload')
# ### end Alembic commands ###
58 changes: 58 additions & 0 deletions postgres/migrations/migrations/versions/5105cfcc9c86_.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
"""empty message

Revision ID: 5105cfcc9c86
Revises: cc3e935179cb
Create Date: 2019-08-29 20:24:16.713430

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = '5105cfcc9c86'
down_revision = 'cc3e935179cb'
branch_labels = None
depends_on = None


def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_table('neurovault_file_upload',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('nv_collection_id', sa.Integer(), nullable=False),
sa.Column('task_id', sa.Text(), nullable=True),
sa.Column('level', sa.Text(), nullable=False),
sa.Column('status', sa.Text(), nullable=True),
sa.CheckConstraint("status IN ('GROUP', 'SUBJECT')"),
sa.CheckConstraint("status IN ('OK', 'FAILED', 'PENDING')"),
sa.ForeignKeyConstraint(['nv_collection_id'], ['neurovault_collection.id'], ),
sa.PrimaryKeyConstraint('id')
)
op.create_unique_constraint(None, 'neurovault_collection', ['collection_id'])
op.drop_column('neurovault_collection', 'status')
op.drop_column('neurovault_collection', 'traceback')
op.drop_column('neurovault_collection', 'task_id')
op.alter_column('predictor_collection', 'user_id',
existing_type=sa.INTEGER(),
nullable=True)
op.drop_index('ix_predictor_event_run_id', table_name='predictor_event')
op.drop_index('ix_predictor_id_run_id', table_name='predictor_event')
op.drop_constraint('predictor_event_onset_run_id_predictor_id_object_id_key', 'predictor_event', type_='unique')
# ### end Alembic commands ###


def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_unique_constraint('predictor_event_onset_run_id_predictor_id_object_id_key', 'predictor_event', ['onset', 'run_id', 'predictor_id', 'object_id'])
op.create_index('ix_predictor_id_run_id', 'predictor_event', ['predictor_id', 'run_id'], unique=False)
op.create_index('ix_predictor_event_run_id', 'predictor_event', ['run_id'], unique=False)
op.alter_column('predictor_collection', 'user_id',
existing_type=sa.INTEGER(),
nullable=False)
op.add_column('neurovault_collection', sa.Column('task_id', sa.TEXT(), autoincrement=False, nullable=True))
op.add_column('neurovault_collection', sa.Column('traceback', sa.TEXT(), autoincrement=False, nullable=True))
op.add_column('neurovault_collection', sa.Column('status', sa.TEXT(), autoincrement=False, nullable=True))
op.drop_constraint(None, 'neurovault_collection', type_='unique')
op.drop_table('neurovault_file_upload')
# ### end Alembic commands ###
32 changes: 32 additions & 0 deletions postgres/migrations/migrations/versions/d4417864ab88_.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
"""empty message

Revision ID: d4417864ab88
Revises: 5105cfcc9c86
Create Date: 2019-08-29 20:33:30.573981

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = 'd4417864ab88'
down_revision = '5105cfcc9c86'
branch_labels = None
depends_on = None


def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.add_column('neurovault_file_upload', sa.Column('exception', sa.Text(), nullable=True))
op.add_column('neurovault_file_upload', sa.Column('path', sa.Text(), nullable=False))
op.add_column('neurovault_file_upload', sa.Column('traceback', sa.Text(), nullable=True))
# ### end Alembic commands ###


def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_column('neurovault_file_upload', 'traceback')
op.drop_column('neurovault_file_upload', 'path')
op.drop_column('neurovault_file_upload', 'exception')
# ### end Alembic commands ###