Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

windows平台启动项目时存在的几个问题 #1

Closed
404name opened this issue Apr 17, 2023 · 6 comments
Closed

windows平台启动项目时存在的几个问题 #1

404name opened this issue Apr 17, 2023 · 6 comments

Comments

@404name
Copy link

404name commented Apr 17, 2023

在windows上启动测试的,可能出现的部分问题如下

  1. 启动时panic异常Node number must be between 0 and 1023 参考GetLocalIpToInt本地ip转负数导致panic异常问题 go-websocket#1
  2. sqlite初始化error导致启动失败
    • 文件路径拼接出现 c:\xxxxx\xxxxx/AppName/DbNamefilepath.Join处理
    • 初始化的时候没有创建文件夹及文件导致gorm.Open找不到路径
// 异常路径https://github.com/MQEnergy/chatcat/blob/main/backend/pkg/csqlite/sqlite.go#L26
// 参考修改的代码如下 
databasePath = filepath.Join(runtimeDir, conf.App.AppName, conf.App.DbName)
if !chelp.IsPathExist(databasePath) {
	// 创建文件夹和文件
	err := os.MkdirAll(filepath.Join(runtimeDir, conf.App.AppName), os.ModePerm)
	if err != nil {
		panic(err)
	}
	_, err = os.Create(databasePath)
	if err != nil {
		panic(err)
	}

	// 初始化数据库
	db, err = gorm.Open(sqlite.Open(databasePath), &gorm.Config{})
		....
404name added a commit to 404name/chatcat that referenced this issue Apr 17, 2023
1. Modify the path splicing method
2. Create folders and files during initialization
MQEnergy#1
@404name 404name mentioned this issue Apr 17, 2023
@chenxi2015
Copy link
Contributor

目前还这个项目还在开发中,还有很多地方需要优化,感谢你提交pr。
第一个问题这边根据你提供的我来修改下
第二个问题,麻烦提供下你这边测试的环境,我用Mac无法复现问题。

@404name
Copy link
Author

404name commented Apr 17, 2023

目前还这个项目还在开发中,还有很多地方需要优化,感谢你提交pr。 第一个问题这边根据你提供的我来修改下 第二个问题,麻烦提供下你这边测试的环境,我用Mac无法复现问题。

我刚刚又看了下filepath.Join应该不需要,第二个问题这边windows报错主要还是文件没有被创建的问题,对于拼接的databasePath = runtimeDir + "/" + conf.App.AppName + "/" + conf.App.DbName 路径不存在,并且文件不存在。所以手动 os.MkdirAll+ os.Create(databasePath就跑通了 (也可能mac环境下会自动创建databasePath文件夹?我也不太清楚)

/chatcat-main/backend/pkg/csqlite/sqlite.go:47
[error] failed to initialize database, got error unable to open database file: The system cannot find the path specified.
panic: unable to open database file: The system cannot find the path specified.
exit status 2

@404name
Copy link
Author

404name commented Apr 17, 2023

然后第一个问题是我这边打log看到我本地的ip转成了负数,然后除余1023仍然是负数,放到雪花算法初始化那块就panic了

@chenxi2015
Copy link
Contributor

然后第一个问题是我这边打log看到我本地的ip转成了负数,然后除余1023仍然是负数,放到雪花算法初始化那块就panic了

好的
第一个 我修改下
第二个 我们这边window测试也是ok的,gorm.Open 应该是会创建这个文件的,我们在window上没有复现,为了更稳定,麻烦你这边重新修改下提交pr吧。创建文件的方法使用在help.go里面 MakeFileOrPath 这个函数。

@404name
Copy link
Author

404name commented Apr 17, 2023

然后第一个问题是我这边打log看到我本地的ip转成了负数,然后除余1023仍然是负数,放到雪花算法初始化那块就panic了

好的 第一个 我修改下 第二个 我们这边window测试也是ok的,gorm.Open 应该是会创建这个文件的,我们在window上没有复现,为了更稳定,麻烦你这边重新修改下提交pr吧。创建文件的方法使用在help.go里面 MakeFileOrPath 这个函数。

好,我明天找时间研究下,可能只是我这边的问题,到时候能复现了再改pr,没有的话就close了

@chenxi2015
Copy link
Contributor

chenxi2015 commented Apr 17, 2023

然后第一个问题是我这边打log看到我本地的ip转成了负数,然后除余1023仍然是负数,放到雪花算法初始化那块就panic了

好的 第一个 我修改下 第二个 我们这边window测试也是ok的,gorm.Open 应该是会创建这个文件的,我们在window上没有复现,为了更稳定,麻烦你这边重新修改下提交pr吧。创建文件的方法使用在help.go里面 MakeFileOrPath 这个函数。

好,我明天找时间研究下,可能只是我这边的问题,到时候能复现了再改pr,没有的话就close了

我应该知道原因了。这块之前有修改过,runtime之前在项目目录,现在改成了用户下的目录,现在还在开发阶段,我先把你pr撤销了,这边我来改下

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants