You are right Michael, in my alembic/env.py I had a line:
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'
)))

I replaced it with 
sys.path.append(os.path.abspath(os.path.dirname(__file__)))
Is there any better or let's more conventional way of setting this up?

And it works now, if I run the script from my root directory, that contains 
my_app and alembic directories. I was confused, because other commands 
would run without issues. 

Thanks a lot!

On Monday, August 11, 2014 5:24:11 PM UTC-7, Michael Bayer wrote:
>
> I would guess this is a side effect of something that occurs in your 
> env.py script.   Not all commands load env.py, so if your migration files 
> depend on env.py being loaded in order for their imports to work that would 
> be what’s happening here.
>
>    
>
> On Aug 11, 2014, at 8:21 PM, Anton <anton.sch...@gmail.com <javascript:>> 
> wrote:
>
> I have a flask application. My project tree looks like:
> .
> ├── Procfile
> ├── README.md
> ├── alembic
> ├── alembic.ini
> ├── my_app
> ├── requirements.txt
> ├── start_server.py
> └── venv
>
> Where my_app contains Flask application, for some reason *branches* 
> command fails to run with an error ImportError: No module named my_app.types
> Traceback (most recent call last):
>   File "/Users/anton/dev/my_app/venv/bin/alembic", line 9, in <module>
>     load_entry_point('alembic==0.6.5', 'console_scripts', 'alembic')()
>   File 
> "/Users/anton/dev/my_app/venv/lib/python2.7/site-packages/alembic/config.py"
> , line 298, in main
>     CommandLine(prog=prog).main(argv=argv)
>   File 
> "/Users/anton/dev/my_app/venv/lib/python2.7/site-packages/alembic/config.py"
> , line 293, in main
>     self.run_cmd(cfg, options)
>   File 
> "/Users/anton/dev/my_app/venv/lib/python2.7/site-packages/alembic/config.py"
> , line 279, in run_cmd
>     **dict((k, getattr(options, k)) for k in kwarg)
>   File 
> "/Users/anton/dev/my_app/venv/lib/python2.7/site-packages/alembic/command.py"
> , line 200, in branches
>     for sc in script.walk_revisions():
>   File 
> "/Users/anton/dev/my_app/venv/lib/python2.7/site-packages/alembic/script.py"
> , line 81, in walk_revisions
>     heads = set(self.get_heads())
>   File 
> "/Users/anton/dev/my_app/venv/lib/python2.7/site-packages/alembic/script.py"
> , line 288, in get_heads
>     for script in self._revision_map.values():
>   File 
> "/Users/anton/dev/my_app/venv/lib/python2.7/site-packages/alembic/util.py"
> , line 268, in __get__
>     obj.__dict__[self.__name__] = result = self.fget(obj)
>   File 
> "/Users/anton/dev/my_app/venv/lib/python2.7/site-packages/alembic/script.py"
> , line 213, in _revision_map
>     script = Script._from_filename(self, self.versions, file_)
>   File 
> "/Users/anton/dev/my_app/venv/lib/python2.7/site-packages/alembic/script.py"
> , line 496, in _from_filename
>     module = util.load_python_file(dir_, filename)
>   File 
> "/Users/anton/dev/my_app/venv/lib/python2.7/site-packages/alembic/util.py"
> , line 212, in load_python_file
>     module = load_module_py(module_id, path)
>   File 
> "/Users/anton/dev/my_app/venv/lib/python2.7/site-packages/alembic/compat.py"
> , line 58, in load_module_py
>     mod = imp.load_source(module_id, path, fp)
>   File "alembic/versions/213495jl1br_.py", line 39, in <module>
>     from my_app.types import DbType
> ImportError: No module named my_app.types
>
> Other commands like upgrade or revision --autogenerate work fine.
>
>
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy-alembic" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to sqlalchemy-alembic+unsubscr...@googlegroups.com <javascript:>.
> For more options, visit https://groups.google.com/d/optout.
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy-alembic" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy-alembic+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to