init elowdb go-port commit
This commit is contained in:
140
debug_app.go
Normal file
140
debug_app.go
Normal file
@@ -0,0 +1,140 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"linedb/pkg/linedb"
|
||||
)
|
||||
|
||||
func main() {
|
||||
fmt.Println("=== LineDB Debug Test ===")
|
||||
|
||||
// Очищаем тестовую папку
|
||||
fmt.Println("1. Очистка тестовой папки...")
|
||||
os.RemoveAll("./testdata")
|
||||
|
||||
// Создаем опции инициализации
|
||||
fmt.Println("2. Создание опций инициализации...")
|
||||
initOptions := &linedb.LineDbInitOptions{
|
||||
CacheSize: 100,
|
||||
CacheTTL: time.Minute,
|
||||
DBFolder: "./testdata",
|
||||
Collections: []linedb.JSONLFileOptions{
|
||||
{
|
||||
CollectionName: "test",
|
||||
AllocSize: 256,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
fmt.Printf(" CacheSize: %d\n", initOptions.CacheSize)
|
||||
fmt.Printf(" CacheTTL: %v\n", initOptions.CacheTTL)
|
||||
fmt.Printf(" DBFolder: %s\n", initOptions.DBFolder)
|
||||
fmt.Printf(" Collections: %d\n", len(initOptions.Collections))
|
||||
|
||||
// Создаем базу данных
|
||||
fmt.Println("3. Создание базы данных...")
|
||||
db := linedb.NewLineDb(nil)
|
||||
defer func() {
|
||||
fmt.Println("9. Закрытие базы данных...")
|
||||
db.Close()
|
||||
}()
|
||||
|
||||
fmt.Printf(" DB создан: %v\n", db != nil)
|
||||
|
||||
// Инициализируем базу данных
|
||||
fmt.Println("4. Инициализация базы данных...")
|
||||
if err := db.Init(false, initOptions); err != nil {
|
||||
fmt.Printf(" ОШИБКА: %v\n", err)
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Println(" База данных инициализирована успешно!")
|
||||
|
||||
// Тест вставки
|
||||
fmt.Println("5. Тест вставки данных...")
|
||||
testData := map[string]any{
|
||||
"name": "test",
|
||||
"value": 123,
|
||||
"debug": true,
|
||||
}
|
||||
|
||||
fmt.Printf(" Вставляемые данные: %+v\n", testData)
|
||||
|
||||
if err := db.Insert(testData, "test", linedb.LineDbAdapterOptions{}); err != nil {
|
||||
fmt.Printf(" ОШИБКА при вставке: %v\n", err)
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Println(" Данные вставлены успешно!")
|
||||
|
||||
// Тест чтения
|
||||
fmt.Println("6. Тест чтения данных...")
|
||||
allData, err := db.Read("test", linedb.LineDbAdapterOptions{})
|
||||
if err != nil {
|
||||
fmt.Printf(" ОШИБКА при чтении: %v\n", err)
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Printf(" Прочитано записей: %d\n", len(allData))
|
||||
for i, record := range allData {
|
||||
fmt.Printf(" Запись %d: %+v\n", i+1, record)
|
||||
}
|
||||
|
||||
if len(allData) != 1 {
|
||||
fmt.Printf(" ОШИБКА: Ожидалось 1 запись, получено %d\n", len(allData))
|
||||
return
|
||||
}
|
||||
|
||||
// Тест фильтрации
|
||||
fmt.Println("7. Тест фильтрации...")
|
||||
filter := map[string]any{"name": "test"}
|
||||
fmt.Printf(" Фильтр: %+v\n", filter)
|
||||
|
||||
filteredData, err := db.ReadByFilter(filter, "test", linedb.LineDbAdapterOptions{})
|
||||
if err != nil {
|
||||
fmt.Printf(" ОШИБКА при фильтрации: %v\n", err)
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Printf(" Отфильтровано записей: %d\n", len(filteredData))
|
||||
for i, record := range filteredData {
|
||||
fmt.Printf(" Отфильтрованная запись %d: %+v\n", i+1, record)
|
||||
}
|
||||
|
||||
// Тест обновления
|
||||
fmt.Println("8. Тест обновления...")
|
||||
updateData := map[string]any{"value": 456, "updated": true}
|
||||
updateFilter := map[string]any{"name": "test"}
|
||||
|
||||
fmt.Printf(" Данные для обновления: %+v\n", updateData)
|
||||
fmt.Printf(" Фильтр обновления: %+v\n", updateFilter)
|
||||
|
||||
updatedData, err := db.Update(updateData, "test", updateFilter, linedb.LineDbAdapterOptions{})
|
||||
if err != nil {
|
||||
fmt.Printf(" ОШИБКА при обновлении: %v\n", err)
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Printf(" Обновлено записей: %d\n", len(updatedData))
|
||||
for i, record := range updatedData {
|
||||
fmt.Printf(" Обновленная запись %d: %+v\n", i+1, record)
|
||||
}
|
||||
|
||||
// Проверяем результат обновления
|
||||
fmt.Println("9. Проверка результата обновления...")
|
||||
finalData, err := db.Read("test", linedb.LineDbAdapterOptions{})
|
||||
if err != nil {
|
||||
fmt.Printf(" ОШИБКА при финальном чтении: %v\n", err)
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Printf(" Финальное количество записей: %d\n", len(finalData))
|
||||
for i, record := range finalData {
|
||||
fmt.Printf(" Финальная запись %d: %+v\n", i+1, record)
|
||||
}
|
||||
|
||||
fmt.Println("=== Все тесты прошли успешно! ===")
|
||||
}
|
||||
Reference in New Issue
Block a user