Comments (16)
@k1LoW 実行してみました。
sql: Scan error on column index 1: unsupported Scan, storing driver.Value type <nil> into type *string github.com/k1LoW/tbls/cmd.printError /root/go/src/github.com/k1LoW/tbls/cmd/root.go:67 github.com/k1LoW/tbls/cmd.glob..func4 /root/go/src/github.com/k1LoW/tbls/cmd/doc.go:56 github.com/k1LoW/tbls/vendor/github.com/spf13/cobra.(*Command).execute /root/go/src/github.com/k1LoW/tbls/vendor/github.com/spf13/cobra/command.go:766 github.com/k1LoW/tbls/vendor/github.com/spf13/cobra.(*Command).ExecuteC /root/go/src/github.com/k1LoW/tbls/vendor/github.com/spf13/cobra/command.go:852 github.com/k1LoW/tbls/vendor/github.com/spf13/cobra.(*Command).Execute /root/go/src/github.com/k1LoW/tbls/vendor/github.com/spf13/cobra/command.go:800 github.com/k1LoW/tbls/cmd.Execute /root/go/src/github.com/k1LoW/tbls/cmd/root.go:54 main.main /root/go/src/github.com/k1LoW/tbls/main.go:34 runtime.main /usr/lib/golang/src/runtime/proc.go:195 runtime.goexit /usr/lib/golang/src/runtime/asm_amd64.s:2337
from tbls.
# DEBUG=1 tbls doc mysql://db_user@passwor@localhost:3306/cs_production ./dbdoc
Error: not found column 'in'
github.com/k1LoW/tbls/drivers/mysql.(*Mysql).Analyze
/root/go/src/github.com/k1LoW/tbls/drivers/mysql/mysql.go:262
github.com/k1LoW/tbls/db.Analyze
/root/go/src/github.com/k1LoW/tbls/db/db.go:49
github.com/k1LoW/tbls/cmd.glob..func4
/root/go/src/github.com/k1LoW/tbls/cmd/doc.go:55
github.com/k1LoW/tbls/vendor/github.com/spf13/cobra.(*Command).execute
/root/go/src/github.com/k1LoW/tbls/vendor/github.com/spf13/cobra/command.go:766
github.com/k1LoW/tbls/vendor/github.com/spf13/cobra.(*Command).ExecuteC
/root/go/src/github.com/k1LoW/tbls/vendor/github.com/spf13/cobra/command.go:852
github.com/k1LoW/tbls/vendor/github.com/spf13/cobra.(*Command).Execute
/root/go/src/github.com/k1LoW/tbls/vendor/github.com/spf13/cobra/command.go:800
github.com/k1LoW/tbls/cmd.Execute
/root/go/src/github.com/k1LoW/tbls/cmd/root.go:53
main.main
/root/go/src/github.com/k1LoW/tbls/main.go:34
runtime.main
/usr/lib/golang/src/runtime/proc.go:195
runtime.goexit
/usr/lib/golang/src/runtime/asm_amd64.s:2337
github.com/k1LoW/tbls/db.Analyze
/root/go/src/github.com/k1LoW/tbls/db/db.go:51
github.com/k1LoW/tbls/cmd.glob..func4
/root/go/src/github.com/k1LoW/tbls/cmd/doc.go:55
github.com/k1LoW/tbls/vendor/github.com/spf13/cobra.(*Command).execute
/root/go/src/github.com/k1LoW/tbls/vendor/github.com/spf13/cobra/command.go:766
github.com/k1LoW/tbls/vendor/github.com/spf13/cobra.(*Command).ExecuteC
/root/go/src/github.com/k1LoW/tbls/vendor/github.com/spf13/cobra/command.go:852
github.com/k1LoW/tbls/vendor/github.com/spf13/cobra.(*Command).Execute
/root/go/src/github.com/k1LoW/tbls/vendor/github.com/spf13/cobra/command.go:800
github.com/k1LoW/tbls/cmd.Execute
/root/go/src/github.com/k1LoW/tbls/cmd/root.go:53
main.main
/root/go/src/github.com/k1LoW/tbls/main.go:34
runtime.main
/usr/lib/golang/src/runtime/proc.go:195
runtime.goexit
/usr/lib/golang/src/runtime/asm_amd64.s:2337
ちなみに、データベースを作成直後にテーブルを作らずにtblsを実行を試してみました。
CREATE DATABASE `cs_v2`;
# DEBUG=1 tbls doc mysql://db_user@passwor@localhost:3306/cs_v2 ./dbdoc
dbdoc/schema.png
exit status 1
github.com/k1LoW/tbls/cmd.withDot
/root/go/src/github.com/k1LoW/tbls/cmd/doc.go:125
github.com/k1LoW/tbls/cmd.glob..func4
/root/go/src/github.com/k1LoW/tbls/cmd/doc.go:80
github.com/k1LoW/tbls/vendor/github.com/spf13/cobra.(*Command).execute
/root/go/src/github.com/k1LoW/tbls/vendor/github.com/spf13/cobra/command.go:766
github.com/k1LoW/tbls/vendor/github.com/spf13/cobra.(*Command).ExecuteC
/root/go/src/github.com/k1LoW/tbls/vendor/github.com/spf13/cobra/command.go:852
github.com/k1LoW/tbls/vendor/github.com/spf13/cobra.(*Command).Execute
/root/go/src/github.com/k1LoW/tbls/vendor/github.com/spf13/cobra/command.go:800
github.com/k1LoW/tbls/cmd.Execute
/root/go/src/github.com/k1LoW/tbls/cmd/root.go:53
main.main
/root/go/src/github.com/k1LoW/tbls/main.go:34
runtime.main
/usr/lib/golang/src/runtime/proc.go:195
runtime.goexit
/usr/lib/golang/src/runtime/asm_amd64.s:2337
cs_v2にテーブルを追加してtbls実行
create table user(
id int,
email varchar(255),
password char(30)
);
# DEBUG=1 tbls doc mysql://db_user@passwor@localhost:3306/cs_v2 ./dbdoc
dbdoc/schema.png
exit status 1
github.com/k1LoW/tbls/cmd.withDot
/root/go/src/github.com/k1LoW/tbls/cmd/doc.go:125
github.com/k1LoW/tbls/cmd.glob..func4
/root/go/src/github.com/k1LoW/tbls/cmd/doc.go:80
github.com/k1LoW/tbls/vendor/github.com/spf13/cobra.(*Command).execute
/root/go/src/github.com/k1LoW/tbls/vendor/github.com/spf13/cobra/command.go:766
github.com/k1LoW/tbls/vendor/github.com/spf13/cobra.(*Command).ExecuteC
/root/go/src/github.com/k1LoW/tbls/vendor/github.com/spf13/cobra/command.go:852
github.com/k1LoW/tbls/vendor/github.com/spf13/cobra.(*Command).Execute
/root/go/src/github.com/k1LoW/tbls/vendor/github.com/spf13/cobra/command.go:800
github.com/k1LoW/tbls/cmd.Execute
/root/go/src/github.com/k1LoW/tbls/cmd/root.go:53
main.main
/root/go/src/github.com/k1LoW/tbls/main.go:34
runtime.main
/usr/lib/golang/src/runtime/proc.go:195
runtime.goexit
/usr/lib/golang/src/runtime/asm_amd64.s:2337
from tbls.
@k1LoW
in
カラムはcs_productionデータベース内にありませんでした。
また、cs_v2 の方でexit status 1
が出る理由は、dbdocディレクトリがなかったことが原因でした。
from tbls.
@k1LoW
tblsを最新バージョンにしたところ、Error: not found column 'in'
がでないで正常に出力できました。
対応ありがとうございます!
ただ、別環境のMySQL5.7で試したところ、違うエラーが出てしまいました。
# cat /etc/redhat-release
CentOS release 6.9 (Final)
# mysql --version
mysql Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using EditLine wrapper
# go version
go version go1.9.6 linux/amd64
# go get -u github.com/k1LoW/tbls
# DEBUG=1 tbls doc mysql://user:password@localhost:3306/tbls_mysql57 ./dbdoc
panic: runtime error: index out of range
goroutine 1 [running]:
github.com/k1LoW/tbls/db.Analyze(0x7ffdb65f48b3, 0x46, 0x0, 0x0, 0x0)
/root/go/src/github.com/k1LoW/tbls/db/db.go:28 +0x453
github.com/k1LoW/tbls/cmd.glob..func4(0xaa7620, 0xc420118e40, 0x2, 0x2)
/root/go/src/github.com/k1LoW/tbls/cmd/doc.go:56 +0x65
github.com/k1LoW/tbls/vendor/github.com/spf13/cobra.(*Command).execute(0xaa7620, 0xc420118e00, 0x2, 0x2, 0xaa7620, 0xc420118e00)
/root/go/src/github.com/k1LoW/tbls/vendor/github.com/spf13/cobra/command.go:766 +0x2c1
github.com/k1LoW/tbls/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0xaa7ae0, 0xc42001c0b8, 0x0, 0xc42004ff48)
/root/go/src/github.com/k1LoW/tbls/vendor/github.com/spf13/cobra/command.go:852 +0x334
github.com/k1LoW/tbls/vendor/github.com/spf13/cobra.(*Command).Execute(0xaa7ae0, 0x0, 0x0)
/root/go/src/github.com/k1LoW/tbls/vendor/github.com/spf13/cobra/command.go:800 +0x2b
github.com/k1LoW/tbls/cmd.Execute()
/root/go/src/github.com/k1LoW/tbls/cmd/root.go:53 +0x2d
main.main()
/root/go/src/github.com/k1LoW/tbls/main.go:34 +0x20
from tbls.
@ymaeyama レポートありがとうございます
tbls v0.10.0 でデバックモードを作成しましたので以下のコマンドを試していただきスタックトレースを共有してもらえますか?
$ DEBUG=1 tbls doc mysql://db_user:password@localhost:3306/cs_production ./dbdoc
from tbls.
使えそうな情報が出ていないですね。。。すみません。
デバッグモードの修正をしました。よろしければ tbls v0.10.1 で再度実行してもらえますと助かります 🙏
from tbls.
@k1LoW
正直よく分からず実行している所がありますので、他に何か必要な作業がありましたら教えてください。
# go get -u github.com/k1LoW/tbls
# tbls version
0.10.1
# DEBUG=1 tbls doc mysql://db_user:password@localhost:3306/cs_production ./dbdoc
sql: Scan error on column index 1: unsupported Scan, storing driver.Value type <nil> into type *string
github.com/k1LoW/tbls/drivers/mysql.(*Mysql).Analyze
/root/go/src/github.com/k1LoW/tbls/drivers/mysql/mysql.go:186
github.com/k1LoW/tbls/db.Analyze
/root/go/src/github.com/k1LoW/tbls/db/db.go:49
github.com/k1LoW/tbls/cmd.glob..func4
/root/go/src/github.com/k1LoW/tbls/cmd/doc.go:55
github.com/k1LoW/tbls/vendor/github.com/spf13/cobra.(*Command).execute
/root/go/src/github.com/k1LoW/tbls/vendor/github.com/spf13/cobra/command.go:766
github.com/k1LoW/tbls/vendor/github.com/spf13/cobra.(*Command).ExecuteC
/root/go/src/github.com/k1LoW/tbls/vendor/github.com/spf13/cobra/command.go:852
github.com/k1LoW/tbls/vendor/github.com/spf13/cobra.(*Command).Execute
/root/go/src/github.com/k1LoW/tbls/vendor/github.com/spf13/cobra/command.go:800
github.com/k1LoW/tbls/cmd.Execute
/root/go/src/github.com/k1LoW/tbls/cmd/root.go:54
main.main
/root/go/src/github.com/k1LoW/tbls/main.go:34
runtime.main
/usr/lib/golang/src/runtime/proc.go:195
runtime.goexit
/usr/lib/golang/src/runtime/asm_amd64.s:2337
github.com/k1LoW/tbls/db.Analyze
/root/go/src/github.com/k1LoW/tbls/db/db.go:51
github.com/k1LoW/tbls/cmd.glob..func4
/root/go/src/github.com/k1LoW/tbls/cmd/doc.go:55
github.com/k1LoW/tbls/vendor/github.com/spf13/cobra.(*Command).execute
/root/go/src/github.com/k1LoW/tbls/vendor/github.com/spf13/cobra/command.go:766
github.com/k1LoW/tbls/vendor/github.com/spf13/cobra.(*Command).ExecuteC
/root/go/src/github.com/k1LoW/tbls/vendor/github.com/spf13/cobra/command.go:852
github.com/k1LoW/tbls/vendor/github.com/spf13/cobra.(*Command).Execute
/root/go/src/github.com/k1LoW/tbls/vendor/github.com/spf13/cobra/command.go:800
github.com/k1LoW/tbls/cmd.Execute
/root/go/src/github.com/k1LoW/tbls/cmd/root.go:54
main.main
/root/go/src/github.com/k1LoW/tbls/main.go:34
runtime.main
/usr/lib/golang/src/runtime/proc.go:195
runtime.goexit
/usr/lib/golang/src/runtime/asm_amd64.s:2337
from tbls.
早速ありがとうございます!原因はわかりました。
制約条件(PRIMAL KEYやUNIQUE制約や外部キー制約)でtblsが想定できていないモノがあるようです。
from tbls.
暫定対応をしてみました。もし go get
で tbls をインストールしているようでしたら,
go get -u github.com/k1LoW/tbls
でmasterのtblsで再度実行してもらえますと助かります 🙏
from tbls.
エラーの原因の位置が移動したようです。ありがとうございます!
Error: not found column 'in'
ということなので、もし @ymaeyama に in
というカラムに見覚えがなければ、 tbls が in
という何かをカラムと誤解してしまっているようです。
exit status 1
のエラーにつきましては ER図を生成する dot
コマンド(Graphviz)がエラーを吐いているようです。
先程エラーメッセージを出力できるようにしましたので、確認してもらって対応してもらうか、 --no-viz
オプションでER図の生成を止めれば進めることがそのままコマンド実行可能です。
from tbls.
@ymaeyama
少しだけエラーメッセージを拡張しました。
エラー箇所より、わかっているのはtbls の「外部キー制約の処理がうまくいっていないようだ」ということだけです。
しかし、対象のスキーマの特徴がわからないので、手元で再現ができない状況です。。。
もし、エラーが再現可能でかつ共有可能なスキーマ情報がありましたら共有いただけますと幸いです。
ただ、上記対応が非常に難しいこともわかっていますので、こちらでも何かが改善次第このIssueで共有します。
from tbls.
@k1LoW
in
とは別件ですが、MySQL5.6.23に対して、tblsを実行した結果を添付しました。
テーブルは添付ファイル内のcs_v2.sqlで作成しました。
MySQL5.6だと駄目とかありますか?
from tbls.
ありがとうございます。
MySQL5.6だと駄目とかありますか?
確かにMySQL5.6は試していないですね。MySQL5.6であることが問題になるのかもしれません。手元でも確認してみます。
from tbls.
テーブルは添付ファイル内のcs_v2.sqlで作成しました。
こちらのバグはMySQL5.7でも再現しました。別で解決をしていきます。ありがとうございます。
from tbls.
#36 (comment) の修正を #42 で実施しました。 masterブランチでは修正されているはずですー
from tbls.
@ymaeyama
よかったです!このIssueは解決したということで閉じますね!
そして別Issueで #36 (comment) を解決していきましょう
from tbls.
Related Issues (20)
- Add "Arguments" to the field to sort in function category. HOT 2
- Refer viewpoints from tables HOT 1
- C warning in graphviz dependency HOT 2
- One-to-one relations are incorrectly exported as one-to-many in mermaid diagram HOT 4
- Viewpoints from tables not refered just in `diff` HOT 1
- D2 diagram support
- download v1.72.0 getting error HOT 3
- Distinguish Views from Tables in README.md HOT 5
- Configuration File Customization - Support for custom file names HOT 4
- An error about:invalid database scheme HOT 8
- Split configuration file for one schema HOT 2
- Github action could not find a writable bin path: /usr/local/bin:/usr/bin:/bin:/snap/bin HOT 7
- warning: implicit truncation from 'int' to a one-bit HOT 1
- Planetscale Database Support HOT 4
- Support Cloud Spanner emulator
- sqlite fails with "converting NULL to string is unsupported" HOT 1
- Show table comments for related tables of View. HOT 2
- Enable to name Viewpoint files instead of indexes HOT 10
- Error when referencing itsself HOT 4
- Add support for Neo4J HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tbls.