|
@@ -0,0 +1,77 @@
|
|
1
|
+"""fill content file_extension column
|
|
2
|
+
|
|
3
|
+Revision ID: 15305f71bfda
|
|
4
|
+Revises: e31ddc009b37
|
|
5
|
+Create Date: 2016-11-25 10:50:01.874820
|
|
6
|
+
|
|
7
|
+"""
|
|
8
|
+
|
|
9
|
+# revision identifiers, used by Alembic.
|
|
10
|
+import os
|
|
11
|
+
|
|
12
|
+revision = '15305f71bfda'
|
|
13
|
+down_revision = 'e31ddc009b37'
|
|
14
|
+
|
|
15
|
+from alembic import op
|
|
16
|
+import sqlalchemy as sa
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+content_revision_helper = sa.Table(
|
|
20
|
+ 'content_revisions',
|
|
21
|
+ sa.MetaData(),
|
|
22
|
+ sa.Column('revision_id', sa.Integer, primary_key=True),
|
|
23
|
+ sa.Column('content_id', sa.ForeignKey(u'content.id'), nullable=False),
|
|
24
|
+ sa.Column('owner_id', sa.ForeignKey(u'users.user_id'), index=True),
|
|
25
|
+ sa.Column('label', sa.String(1024), nullable=False),
|
|
26
|
+ sa.Column('description', sa.Text, nullable=False),
|
|
27
|
+ sa.Column('file_name', sa.String(255), nullable=False),
|
|
28
|
+ sa.Column('file_extension', sa.String(255), nullable=False),
|
|
29
|
+ sa.Column('file_mimetype', sa.String(255), nullable=False),
|
|
30
|
+ sa.Column('file_content', sa.LargeBinary),
|
|
31
|
+ sa.Column('properties', sa.Text, nullable=False),
|
|
32
|
+ sa.Column('type', sa.String(32), nullable=False),
|
|
33
|
+ sa.Column('status', sa.String(32), nullable=False),
|
|
34
|
+ sa.Column('created', sa.DateTime, nullable=False),
|
|
35
|
+ sa.Column('updated', sa.DateTime, nullable=False),
|
|
36
|
+ sa.Column('is_deleted', sa.Boolean, nullable=False),
|
|
37
|
+ sa.Column('is_archived', sa.Boolean, nullable=False),
|
|
38
|
+ sa.Column('is_temporary', sa.Boolean, nullable=False),
|
|
39
|
+ sa.Column('revision_type', sa.String(32), nullable=False),
|
|
40
|
+ sa.Column('workspace_id', sa.ForeignKey(u'workspaces.workspace_id')),
|
|
41
|
+ sa.Column('parent_id', sa.ForeignKey(u'content.id'), index=True),
|
|
42
|
+)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+def upgrade():
|
|
46
|
+ connection = op.get_bind()
|
|
47
|
+
|
|
48
|
+ for content_revision in connection.execute(
|
|
49
|
+ content_revision_helper.select()
|
|
50
|
+ ):
|
|
51
|
+ # On work with FILE
|
|
52
|
+ if content_revision.type == 'file':
|
|
53
|
+ file_name, file_extension = \
|
|
54
|
+ os.path.splitext(content_revision.file_name)
|
|
55
|
+
|
|
56
|
+ # Don't touch label if already set
|
|
57
|
+ if content_revision.label:
|
|
58
|
+ new_label = content_revision.label
|
|
59
|
+ # Label will be file name without extension
|
|
60
|
+ else:
|
|
61
|
+ new_label = file_name
|
|
62
|
+
|
|
63
|
+ # Update record
|
|
64
|
+ connection.execute(
|
|
65
|
+ content_revision_helper.update()
|
|
66
|
+ .where(
|
|
67
|
+ content_revision_helper.c.revision_id ==
|
|
68
|
+ content_revision.revision_id
|
|
69
|
+ ).values(
|
|
70
|
+ label=new_label,
|
|
71
|
+ file_extension=file_extension,
|
|
72
|
+ )
|
|
73
|
+ )
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+def downgrade():
|
|
77
|
+ pass
|