Coder Social home page Coder Social logo

Comments (16)

ymaeyama avatar ymaeyama commented on July 17, 2024 1

@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.

ymaeyama avatar ymaeyama commented on July 17, 2024 1

@k1LoW

# 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.

ymaeyama avatar ymaeyama commented on July 17, 2024 1

@k1LoW
inカラムはcs_productionデータベース内にありませんでした。

また、cs_v2 の方でexit status 1が出る理由は、dbdocディレクトリがなかったことが原因でした。

from tbls.

ymaeyama avatar ymaeyama commented on July 17, 2024 1

@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.

k1LoW avatar k1LoW commented on July 17, 2024

@ymaeyama レポートありがとうございます

tbls v0.10.0 でデバックモードを作成しましたので以下のコマンドを試していただきスタックトレースを共有してもらえますか?

$ DEBUG=1 tbls doc mysql://db_user:password@localhost:3306/cs_production ./dbdoc

from tbls.

k1LoW avatar k1LoW commented on July 17, 2024

@ymaeyama

使えそうな情報が出ていないですね。。。すみません。

デバッグモードの修正をしました。よろしければ tbls v0.10.1 で再度実行してもらえますと助かります 🙏

from tbls.

ymaeyama avatar ymaeyama commented on July 17, 2024

@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.

k1LoW avatar k1LoW commented on July 17, 2024

@ymaeyama

早速ありがとうございます!原因はわかりました。
制約条件(PRIMAL KEYやUNIQUE制約や外部キー制約)でtblsが想定できていないモノがあるようです。

from tbls.

k1LoW avatar k1LoW commented on July 17, 2024

@ymaeyama

暫定対応をしてみました。もし go get で tbls をインストールしているようでしたら,
go get -u github.com/k1LoW/tbls でmasterのtblsで再度実行してもらえますと助かります 🙏

from tbls.

k1LoW avatar k1LoW commented on July 17, 2024

@ymaeyama

エラーの原因の位置が移動したようです。ありがとうございます!
Error: not found column 'in' ということなので、もし @ymaeyamain というカラムに見覚えがなければ、 tbls が in という何かをカラムと誤解してしまっているようです。

exit status 1 のエラーにつきましては ER図を生成する dot コマンド(Graphviz)がエラーを吐いているようです。
先程エラーメッセージを出力できるようにしましたので、確認してもらって対応してもらうか、 --no-viz オプションでER図の生成を止めれば進めることがそのままコマンド実行可能です。

from tbls.

k1LoW avatar k1LoW commented on July 17, 2024

@ymaeyama
少しだけエラーメッセージを拡張しました。

エラー箇所より、わかっているのはtbls の「外部キー制約の処理がうまくいっていないようだ」ということだけです。
しかし、対象のスキーマの特徴がわからないので、手元で再現ができない状況です。。。

もし、エラーが再現可能でかつ共有可能なスキーマ情報がありましたら共有いただけますと幸いです。

ただ、上記対応が非常に難しいこともわかっていますので、こちらでも何かが改善次第このIssueで共有します。

from tbls.

ymaeyama avatar ymaeyama commented on July 17, 2024

@k1LoW
inとは別件ですが、MySQL5.6.23に対して、tblsを実行した結果を添付しました。
テーブルは添付ファイル内のcs_v2.sqlで作成しました。
MySQL5.6だと駄目とかありますか?

dbdoc.zip

from tbls.

k1LoW avatar k1LoW commented on July 17, 2024

@ymaeyama

ありがとうございます。

MySQL5.6だと駄目とかありますか?

確かにMySQL5.6は試していないですね。MySQL5.6であることが問題になるのかもしれません。手元でも確認してみます。

from tbls.

k1LoW avatar k1LoW commented on July 17, 2024

@ymaeyama

テーブルは添付ファイル内のcs_v2.sqlで作成しました。

こちらのバグはMySQL5.7でも再現しました。別で解決をしていきます。ありがとうございます。

from tbls.

k1LoW avatar k1LoW commented on July 17, 2024

#36 (comment) の修正を #42 で実施しました。 masterブランチでは修正されているはずですー

from tbls.

k1LoW avatar k1LoW commented on July 17, 2024

@ymaeyama
よかったです!このIssueは解決したということで閉じますね!
そして別Issueで #36 (comment) を解決していきましょう

from tbls.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.