Trying to run the latest code on my macbook. There is no ignorelist table when I try to run
python manage.py run_change_reporter all
$ python manage.py run_change_reporter all
Starting work on account foobar
Traceback (most recent call last):
File "manage.py", line 240, in <module>
manager.run()
File "/Users/ivanlei/virtual_envs/security_monkey/lib/python2.7/site-packages/flask_script/__init__.py", line 397, in run
result = self.handle(sys.argv[0], sys.argv[1:])
File "/Users/ivanlei/virtual_envs/security_monkey/lib/python2.7/site-packages/flask_script/__init__.py", line 376, in handle
return handle(app, *positional_args, **kwargs)
File "/Users/ivanlei/virtual_envs/security_monkey/lib/python2.7/site-packages/flask_script/commands.py", line 145, in handle
return self.run(*args, **kwargs)
File "manage.py", line 72, in run_change_reporter
sm_run_change_reporter(accounts)
File "/Users/ivanlei/security_monkey/security_monkey/__init__.py", line 195, in run_change_reporter
reporter.run(account)
File "/Users/ivanlei/security_monkey/security_monkey/reporter.py", line 81, in run
(items, exception_map) = watcher.slurp()
File "/Users/ivanlei/security_monkey/security_monkey/watchers/sqs.py", line 50, in slurp
self.prep_for_slurp()
File "/Users/ivanlei/security_monkey/security_monkey/watcher.py", line 54, in prep_for_slurp
self.ignore_list = query.filter(Technology.name==self.index).all()
File "/Users/ivanlei/virtual_envs/security_monkey/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2279, in all
return list(self)
File "/Users/ivanlei/virtual_envs/security_monkey/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2391, in __iter__
return self._execute_and_instances(context)
File "/Users/ivanlei/virtual_envs/security_monkey/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2406, in _execute_and_instances
result = conn.execute(querycontext.statement, self._params)
File "/Users/ivanlei/virtual_envs/security_monkey/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 717, in execute
return meth(self, multiparams, params)
File "/Users/ivanlei/virtual_envs/security_monkey/lib/python2.7/site-packages/sqlalchemy/sql/elements.py", line 317, in _execute_on_connection
return connection._execute_clauseelement(self, multiparams, params)
File "/Users/ivanlei/virtual_envs/security_monkey/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 814, in _execute_clauseelement
compiled_sql, distilled_params
File "/Users/ivanlei/virtual_envs/security_monkey/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 927, in _execute_context
context)
File "/Users/ivanlei/virtual_envs/security_monkey/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1076, in _handle_dbapi_exception
exc_info
File "/Users/ivanlei/virtual_envs/security_monkey/lib/python2.7/site-packages/sqlalchemy/util/compat.py", line 185, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb)
File "/Users/ivanlei/virtual_envs/security_monkey/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 920, in _execute_context
context)
File "/Users/ivanlei/virtual_envs/security_monkey/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 425, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (ProgrammingError) relation "ignorelist" does not exist
LINE 2: FROM ignorelist JOIN technology ON technology.id = ignorelis...
^
'SELECT ignorelist.id AS ignorelist_id, ignorelist.prefix AS ignorelist_prefix, ignorelist.notes AS ignorelist_notes, ignorelist.tech_id AS ignorelist_tech_id \nFROM ignorelist JOIN technology ON technology.id = ignorelist.tech_id \nWHERE technology.name = %(name_1)s' {'name_1': 'sqs'}
I'm not real certain how to use the alembic/flashmigrate stuff so I kinda faked it by populating a file in migrations/versions that creates the table when I run python manage.py db upgrade
. My file looks like:
"""add ignorelist
Revision ID: 262a9fd74c04
Revises: fb592c81e71
Create Date: 2014-11-01 18:16:32.182788
"""
# revision identifiers, used by Alembic.
revision = '262a9fd74c04'
down_revision = 'fb592c81e71'
from alembic import op
import sqlalchemy as sa
def upgrade():
### commands auto generated by Alembic - please adjust! ###
op.create_table('ignorelist',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('prefix', sa.String(length=512), nullable=True),
sa.Column('notes', sa.String(length=512), nullable=True),
sa.Column('tech_id', sa.Integer(), nullable=True),
sa.ForeignKeyConstraint(['tech_id'], ['technology.id'], ),
sa.PrimaryKeyConstraint('id')
)
### end Alembic commands ###
def downgrade():
### commands auto generated by Alembic - please adjust! ###
op.drop_table('ignorelist')
### end Alembic commands ###
This seems to work but I had to write the python code by hand as I couldn't figure out the alembic stuff.