alembic: Adjust sippeers, queue_members, and voicemail_messages tables.
authorRichard Mudgett <rmudgett@digium.com>
Wed, 6 Aug 2014 17:04:08 +0000 (17:04 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Wed, 6 Aug 2014 17:04:08 +0000 (17:04 +0000)
* Increased the sippeers useragent max string size to 255.

* Changed the queue_members uniqueid to an auto incremented integer
instead of a string.

* Increased the voicemail_messages BLOB size to LONGBLOB on mysql.

* Fixed the add_tables_for_pjsip config change version downgrade actions
to drop a table it created.

* Adjusted the sample alembic.ini files cdr.ini.sample, config.ini.sample,
and voicemail.ini.sample to give a mysql and postgres sqlalchemy.url
lines.

ASTERISK-23847 #close
Reported by: Stephen More

ASTERISK-23825 #close
Reported by: Stephen More

ASTERISK-23909 #close
Reported by: Stephen More

Review: https://reviewboard.asterisk.org/r/3870/
........

Merged revisions 420211 from http://svn.asterisk.org/svn/asterisk/branches/12

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@420212 65c4cc65-6c06-0410-ace0-fbb531ad65f3

contrib/ast-db-manage/cdr.ini.sample
contrib/ast-db-manage/config.ini.sample
contrib/ast-db-manage/config/versions/1758e8bbf6b_increase_useragent_column_size.py [new file with mode: 0755]
contrib/ast-db-manage/config/versions/43956d550a44_add_tables_for_pjsip.py
contrib/ast-db-manage/config/versions/5139253c0423_make_q_member_uniqueid_autoinc.py [new file with mode: 0755]
contrib/ast-db-manage/voicemail.ini.sample
contrib/ast-db-manage/voicemail/versions/39428242f7f5_increase_recording_column_size.py [new file with mode: 0755]

index f8047b4..58b8e6d 100644 (file)
@@ -15,7 +15,10 @@ script_location = cdr
 # the 'revision' command, regardless of autogenerate
 # revision_environment = false
 
 # the 'revision' command, regardless of autogenerate
 # revision_environment = false
 
-sqlalchemy.url = mysql://user:pass@localhost/voicemail
+#sqlalchemy.url = driver://user:pass@localhost/dbname
+
+#sqlalchemy.url = postgresql://user:pass@localhost/cdr
+sqlalchemy.url = mysql://user:pass@localhost/cdr
 
 
 # Logging configuration
 
 
 # Logging configuration
index d6cfacd..107880e 100644 (file)
@@ -1,3 +1,5 @@
+# A generic, single database configuration.
+
 [alembic]
 # path to migration scripts
 script_location = config
 [alembic]
 # path to migration scripts
 script_location = config
@@ -5,11 +7,18 @@ script_location = config
 # template used to generate migration files
 # file_template = %%(rev)s_%%(slug)s
 
 # template used to generate migration files
 # file_template = %%(rev)s_%%(slug)s
 
+# max length of characters to apply to the
+# "slug" field
+#truncate_slug_length = 40
+
 # set to 'true' to run the environment during
 # the 'revision' command, regardless of autogenerate
 # revision_environment = false
 
 # set to 'true' to run the environment during
 # the 'revision' command, regardless of autogenerate
 # revision_environment = false
 
-sqlalchemy.url = mysql://root:password@localhost/asterisk
+#sqlalchemy.url = driver://user:pass@localhost/dbname
+
+#sqlalchemy.url = postgresql://user:pass@localhost/asterisk
+sqlalchemy.url = mysql://user:pass@localhost/asterisk
 
 
 # Logging configuration
 
 
 # Logging configuration
diff --git a/contrib/ast-db-manage/config/versions/1758e8bbf6b_increase_useragent_column_size.py b/contrib/ast-db-manage/config/versions/1758e8bbf6b_increase_useragent_column_size.py
new file mode 100755 (executable)
index 0000000..215726f
--- /dev/null
@@ -0,0 +1,41 @@
+#
+# Asterisk -- An open source telephony toolkit.
+#
+# Copyright (C) 2014, Richard Mudgett
+#
+# Richard Mudgett <rmudgett@digium.com>
+#
+# See http://www.asterisk.org for more information about
+# the Asterisk project. Please do not directly contact
+# any of the maintainers of this project for assistance;
+# the project provides a web site, mailing lists and IRC
+# channels for your use.
+#
+# This program is free software, distributed under the terms of
+# the GNU General Public License Version 2. See the LICENSE file
+# at the top of the source tree.
+#
+
+"""increase useragent column size
+
+Revision ID: 1758e8bbf6b
+Revises: 1d50859ed02e
+Create Date: 2014-07-28 14:04:17.874332
+
+"""
+
+# revision identifiers, used by Alembic.
+revision = '1758e8bbf6b'
+down_revision = '1d50859ed02e'
+
+from alembic import op
+import sqlalchemy as sa
+
+
+def upgrade():
+    op.alter_column('sippeers', 'useragent', type_=sa.String(255))
+
+
+def downgrade():
+    op.alter_column('sippeers', 'useragent', type_=sa.String(20))
+
index 2fabf7a..0c4d9c8 100755 (executable)
@@ -184,5 +184,6 @@ def downgrade():
     op.drop_table('ps_endpoints')
     op.drop_table('ps_auths')
     op.drop_table('ps_aors')
     op.drop_table('ps_endpoints')
     op.drop_table('ps_auths')
     op.drop_table('ps_aors')
+    op.drop_table('ps_contacts')
     op.drop_table('ps_domain_aliases')
     op.drop_table('ps_endpoint_id_ips')
     op.drop_table('ps_domain_aliases')
     op.drop_table('ps_endpoint_id_ips')
diff --git a/contrib/ast-db-manage/config/versions/5139253c0423_make_q_member_uniqueid_autoinc.py b/contrib/ast-db-manage/config/versions/5139253c0423_make_q_member_uniqueid_autoinc.py
new file mode 100755 (executable)
index 0000000..6bcaa9a
--- /dev/null
@@ -0,0 +1,60 @@
+#
+# Asterisk -- An open source telephony toolkit.
+#
+# Copyright (C) 2014, Richard Mudgett
+#
+# Richard Mudgett <rmudgett@digium.com>
+#
+# See http://www.asterisk.org for more information about
+# the Asterisk project. Please do not directly contact
+# any of the maintainers of this project for assistance;
+# the project provides a web site, mailing lists and IRC
+# channels for your use.
+#
+# This program is free software, distributed under the terms of
+# the GNU General Public License Version 2. See the LICENSE file
+# at the top of the source tree.
+#
+
+"""make q member uniqueid autoinc
+
+Revision ID: 5139253c0423
+Revises: 1758e8bbf6b
+Create Date: 2014-07-29 16:26:51.184981
+
+"""
+
+# revision identifiers, used by Alembic.
+revision = '5139253c0423'
+down_revision = '1758e8bbf6b'
+
+from alembic import op
+import sqlalchemy as sa
+
+
+def upgrade():
+    # Was unable to find a way to use op.alter_column() to add the unique
+    # index property.
+    op.drop_column('queue_members', 'uniqueid')
+    op.add_column(
+        'queue_members',
+        sa.Column(
+            name='uniqueid', type_=sa.Integer, nullable=False,
+            unique=True))
+    # The postgres backend does not like the autoincrement needed for
+    # mysql here.  It is just the backend that is giving a warning and
+    # not the database itself.
+    op.alter_column(
+        table_name='queue_members', column_name='uniqueid',
+        existing_type=sa.Integer, existing_nullable=False,
+        autoincrement=True)
+
+
+def downgrade():
+    # Was unable to find a way to use op.alter_column() to remove the
+    # unique index property.
+    op.drop_column('queue_members', 'uniqueid')
+    op.add_column(
+        'queue_members',
+        sa.Column(name='uniqueid', type_=sa.String(80), nullable=False))
+
index 6742d01..8fae8f1 100644 (file)
@@ -1,3 +1,5 @@
+# A generic, single database configuration.
+
 [alembic]
 # path to migration scripts
 script_location = voicemail
 [alembic]
 # path to migration scripts
 script_location = voicemail
@@ -5,10 +7,17 @@ script_location = voicemail
 # template used to generate migration files
 # file_template = %%(rev)s_%%(slug)s
 
 # template used to generate migration files
 # file_template = %%(rev)s_%%(slug)s
 
+# max length of characters to apply to the
+# "slug" field
+#truncate_slug_length = 40
+
 # set to 'true' to run the environment during
 # the 'revision' command, regardless of autogenerate
 # revision_environment = false
 
 # set to 'true' to run the environment during
 # the 'revision' command, regardless of autogenerate
 # revision_environment = false
 
+#sqlalchemy.url = driver://user:pass@localhost/dbname
+
+#sqlalchemy.url = postgresql://user:pass@localhost/voicemail
 sqlalchemy.url = mysql://user:pass@localhost/voicemail
 
 
 sqlalchemy.url = mysql://user:pass@localhost/voicemail
 
 
diff --git a/contrib/ast-db-manage/voicemail/versions/39428242f7f5_increase_recording_column_size.py b/contrib/ast-db-manage/voicemail/versions/39428242f7f5_increase_recording_column_size.py
new file mode 100755 (executable)
index 0000000..f06cbf1
--- /dev/null
@@ -0,0 +1,44 @@
+#
+# Asterisk -- An open source telephony toolkit.
+#
+# Copyright (C) 2014, Richard Mudgett
+#
+# Richard Mudgett <rmudgett@digium.com>
+#
+# See http://www.asterisk.org for more information about
+# the Asterisk project. Please do not directly contact
+# any of the maintainers of this project for assistance;
+# the project provides a web site, mailing lists and IRC
+# channels for your use.
+#
+# This program is free software, distributed under the terms of
+# the GNU General Public License Version 2. See the LICENSE file
+# at the top of the source tree.
+#
+
+"""increase recording column size
+
+Revision ID: 39428242f7f5
+Revises: a2e9769475e
+Create Date: 2014-07-28 16:02:05.104895
+
+"""
+
+# revision identifiers, used by Alembic.
+revision = '39428242f7f5'
+down_revision = 'a2e9769475e'
+
+from alembic import op
+import sqlalchemy as sa
+
+
+def upgrade():
+    # Make BLOB a LONGBLOB for mysql so recordings longer than about
+    # four seconds can be stored.
+    # See LargeBinary http://docs.sqlalchemy.org/en/rel_0_9/core/types.html
+    op.alter_column('voicemail_messages', 'recording', type_=sa.LargeBinary(4294967295))
+
+
+def downgrade():
+    op.alter_column('voicemail_messages', 'recording', type_=sa.LargeBinary)
+