2016-03-26 13 views
1

私はPostgreSQLとodoを初めて使用しています。私は以下を作成しました:(私はUbuntuで作業しています)。CSVファイルをPostgreSQLデータベースにアップロードする

私はスーパーtestuserを作成し、このユーザ(役割)と私は、PostgreSQLデータベースtestuserを作成しました(psqlを実行して、その後、データベースTESTUSERのCREATE;)。このデータベースにはtesttableというテーブルがあります。 psycopg2でこのデータベースに問題なく挿入しています。しかし、私はodoのpythonモジュールを見つけました。私の目標はsome_file.csvをpostgresqlデータベースにロードすることだから、私はそれを使うと思った。代わり<password>私はtestuserをのパスワードを持っている:注使い方は

import odo 
odo.odo('some_file.csv', 'postgresql://testuser:<password>@127.0.0.1:5432/testuser::testtable') 

かなり単純に思えた。しかし、それは動作しません、と私は

NotImplementedError: Unable to parse uri to data resource: postgresql://testuser:<password>@localhost:5432/testuser 

を取得します。

は、多分それは明らかであり、私は(最後の段落hereのように)..それを実装する必要がありますが、(PostgreSQLは例で、数回が言及されているので)私は、PostgreSQLがサポートされていると思いました。 接続URIの下にhereと表示しようとしましたが、間違いが見つかりませんでした。そしてhereはodoのドキュメントです。

+0

CSVファイルを単一のデータブロブとして、または構造化テーブル(または複数のテーブル)に挿入しようとしていますか? RDBMSの基本を理解していますか、テーブル構造を知っていますか?あなたのCSVデータの構造を知っていますか? – roadrunner66

+0

はい、私は_single_ステップで1つのテーブルに挿入しようとしています(基本的なステップであると仮定して、少なくともそれを開始してください)。私はどこかで、 'odo'はそのためにCOPYコマンドを使っています。テーブルを作成しました(例: "CREATE TABLE testtable(IDシリアルPRIMARY KEY、年齢整数、名前varchar);"テストcsvはこのようになります "25、John \ n34、Petr"、\ nは改行を表します。 – quapka

答えて

2

私はodoを使用して、csvファイルをpostgresqlに挿入してサポートしています。あなたの接続URIとコードは、本質的に私のものと同じです。 sqlalchemyパッケージがインストールされていますか? odoは、バックグラウンドでsqlalchemypsycopg2の両方を使用しています。 sqlalchemyがインストールされていないシステムでエラーを再現することができました。sqlalchemyをインストールするとエラーが発生しました。

+0

それは本当にそれかもしれません。私はsqlalchemyをインストールしていない..私は、_standard_インポートが不足しているエラーを取得すると思った。私はそれを試してみよう!ありがとう – quapka

+0

githubで同じ解像度で同じような[問題](https://github.com/blaze/odo/issues/279)が見つかりました。これはPostgreSQLとは特に関連していませんが、実装されているほとんどのデータベースでは、基になるコードが同じソースに戻ることが想像されます。 – root

+0

よろしくお願いいたします。ちなみに、xls-> csvからの変換が機能するかどうかはわかりません。私は私の前にそれを持っていないが、私は 'odo( ''、 'my.csv')と同様のエラーが出ていると思う。オドーは本当に使いやすいように思えるか、それとも真実であることが良いのですか? – quapka

関連する問題