diff --git a/main.go b/main.go index 1787bd1..5ec401e 100644 --- a/main.go +++ b/main.go @@ -3,23 +3,47 @@ package main import ( "database/sql" "log" + "os/exec" + // "reflect" _ "github.com/mattn/go-sqlite3" -) +) -// Book is a placeholder for book -type Word struct { - word_id int - source_id int - previous string - current string - next string - count int +type active_record interface { + init(string, int) bool + create() bool + read() bool + update() bool + delete() bool } -type Source struct { - source_id int - name string +type ActiveSqliteRow struct { + id int + table_name string + columns []string +// values map[string] +} +/* +func (r ActiveSqliteRow) init(t string, i int) bool{ + log.Print("In init with" + t) + log.Print(i) + + r.id = i + r.table_name = t + + return true +} +*/ +type Entity struct { + id int + user_id int + name string + spawn_line string +} + +type User struct { + id int + name string } func prep_query(db *sql.DB, q string) (*sql.Stmt){ @@ -34,87 +58,15 @@ func prep_query(db *sql.DB, q string) (*sql.Stmt){ } func main() { - db, _ := sql.Open("sqlite3", "words.db") + // exec setup.sql to init + cmd := exec.Command("sqlite3", "rpgqui.db < sedfsftup.sql") + out, err := cmd.Output() - log.Println("Nuking tables...") - prep_query(db, "DROP TABLE IF EXISTS words").Exec() - prep_query(db, "DROP TABLE IF EXISTS sources").Exec() - log.Println("Done nuking tables!") + if err != nil { + log.Print(err) + } else { + log.Print(out) + } - log.Println("Creating tables...") - prep_query(db, ` - CREATE TABLE IF NOT EXISTS sources ( - source_id INTEGER PRIMARY KEY, - name VARCHAR(64) - ); - `).Exec() - - prep_query(db, ` - CREATE TABLE IF NOT EXISTS words ( - word_id INTEGER PRIMARY KEY, - source_id INTEGER, - previous VARCHAR(64) DEFAULT NULL, - current VARCHAR(64), - next VARCHAR(64) DEFAULT NULL, - count INTEGER DEFAULT 0, - FOREIGN KEY(source_id) REFERENCES sources(source_id) - ); - `).Exec() - log.Println("Done making tables!") - - log.Println("Making indexes...") - prep_query(db, "CREATE INDEX words_sources_index ON words(source_id)").Exec() - log.Println("Done making indexes!") - - log.Println("Inserting source/word...") - prep_query(db, ` - INSERT INTO sources - (name) - VALUES - (?) - `).Exec("Monqui") - - prep_query(db, ` - INSERT INTO words - (current, next, source_id) - VALUES - (?, ?, ?) - `).Exec("My", "name", 1) - - log.Println("Inserted the source/word into database!") - - rows, _ := db.Query("SELECT source_id, name FROM sources") - var tempSource Source - for rows.Next() { - rows.Scan(&tempSource.source_id, &tempSource.name) - log.Printf("source_id:%d, name:%s\n", - tempSource.source_id, tempSource.name) - } - - rows, _ = db.Query("SELECT word_id, current, next, source_id FROM words") - var tempWord Word - for rows.Next() { - rows.Scan(&tempWord.word_id, &tempWord.current, &tempWord.next, &tempWord.source_id) - log.Printf( - "word_id:%d, current:%s, next:%s, source_id:%d\n", - tempWord.word_id, tempWord.current, tempWord.next, tempWord.source_id) - } - - // Update - prep_query(db, "UPDATE sources SET name=? WHERE source_id=?").Exec("Monqu2", 1) - - rows, _ = db.Query("SELECT source_id, name FROM sources") - for rows.Next() { - rows.Scan(&tempSource.source_id, &tempSource.name) - log.Printf("source_id:%d, name:%s\n", - tempSource.source_id, tempSource.name) - } - - // -/* - // Delete - statement, _ = db.Prepare("delete from books where id=?") - statement.Exec(1) - log.Println("Successfully deleted the book in database!") -*/ +// db, _ := sql.Open("sqlite3", "words.db") } diff --git a/words.db b/rpgqui.db similarity index 71% rename from words.db rename to rpgqui.db index eca1ac2..1f6de18 100644 Binary files a/words.db and b/rpgqui.db differ diff --git a/setup.sql b/setup.sql new file mode 100644 index 0000000..08f6867 --- /dev/null +++ b/setup.sql @@ -0,0 +1,15 @@ +DROP TABLE IF EXISTS users; +DROP TABLE IF EXISTS entities; + +CREATE TABLE IF NOT EXISTS users ( + id INTEGER PRIMARY KEY, + name VARCHAR(64) +); + +CREATE TABLE IF NOT EXISTS entities ( + id INTEGER PRIMARY KEY, + user_id INTEGER, + name VARCHAR(64), + spawn_line VARCHAR(64), + FOREIGN KEY(user_id) REFERENCES users(id) +); \ No newline at end of file