2015-02-28 4 views
1

Je ne comprends pas pourquoi je ne peux pas exécuter sqlacodegen. Je cherche à l'utiliser pour créer un modèle SQLAlchemy à partir de ma base de données PostgreSQL existante. Ça ne marchera pas.Comment lancer sqlacodegen?

Lorsque je tape sqlacodegen --help aide je reçois:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: bad operand type for unary -: '_Helper' 

instructions de base sont here.

Répondre

11

C'est parce que vous l'avez fait en shell Python:

>>> import sqlacodegen 
>>> sqlacodegen --help 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: bad operand type for unary -: '_Helper' 

Vous devriez avoir exécuté sqlacodegen --help dans votre shell de commande Unix /invite de commande Windows:

% sqlacodegen --help 
usage: sqlacodegen [-h] [--version] [--schema SCHEMA] [--tables TABLES] 
        [--noviews] [--noindexes] [--noconstraints] [--nojoined] 
        [--noinflect] [--outfile OUTFILE] 
        [url] 

Generates SQLAlchemy model code from an existing database. 

positional arguments: 
    url    SQLAlchemy url to the database 

optional arguments: 
    -h, --help   show this help message and exit 
    --version   print the version number and exit 
    --schema SCHEMA load tables from an alternate schema 
    --tables TABLES tables to process (comma-separated, default: all) 
    --noviews   ignore views 
    --noindexes  ignore indexes 
    --noconstraints ignore constraints 
    --nojoined   don't autodetect joined table inheritance 
    --noinflect  don't try to convert tables names to singular form 
    --outfile OUTFILE file to write output to (default: stdout) 

Un exemple de réelle la commande serait alors:

% sqlacodegen --outfile models.py \ 
postgresql://gollyjer:[email protected]:5432/mydatabase 

gollyjer:swordfish est au format user:password.

+0

J'ai ajouté une ligne expliquant gollyjer: espadon, car il n'était pas clair quel était l'utilisateur et quel était le mot de passe. – fedorqui

+1

@fedorqui Merci, bien que https://en.wikipedia.org/wiki/Swordfish_(password): D –

0

Peu de choses qui sont déjà répondu ici:

  1. sqlacodegen doit être installé à l'aide pip
  2. une fois installé, il doit être exécuté à partir de commandes Windows rapide et pas de shell python.
  3. Si vous donnez plusieurs noms de tables, ne donnez pas d'espace entre les noms de tables et ne fournissez que des virgules.