initialize database if table doesn't exist
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				continuous-integration/drone/push Build is passing
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	continuous-integration/drone/push Build is passing
				
			This commit is contained in:
		| @@ -86,3 +86,31 @@ func (conf Configuration) Connect() (*Connection, error) { | ||||
|  | ||||
| 	return conn, nil | ||||
| } | ||||
|  | ||||
| // InitializeDatabase will check if tables exist in the database, and if not then create them. | ||||
| func (conn Connection) InitializeDatabase() error { | ||||
| 	rows, err := conn.DB.Query(`SHOW TABLES`) | ||||
| 	if err != nil { | ||||
| 		return fmt.Errorf("SHOW TABLES query failed: %v", err) | ||||
| 	} | ||||
| 	defer rows.Close() | ||||
|  | ||||
| 	if rows.Next() { // Table already exists, leave with no error | ||||
| 		return nil | ||||
| 	} | ||||
|  | ||||
| 	// Table does not exist, create it | ||||
| 	_, err = conn.DB.Exec(`CREATE TABLE visit ( | ||||
| 		id int(11) NOT NULL AUTO_INCREMENT, | ||||
| 		ip_address varchar(15) NOT NULL, | ||||
| 		visits int(11) NOT NULL, | ||||
| 		last_visited datetime NOT NULL, | ||||
| 		PRIMARY KEY (id) | ||||
| 	  ) ENGINE=InnoDB DEFAULT CHARSET=latin1;`) | ||||
|  | ||||
| 	if err != nil { | ||||
| 		return fmt.Errorf("failed to create table: %v", err) | ||||
| 	} | ||||
|  | ||||
| 	return nil | ||||
| } | ||||
|   | ||||
							
								
								
									
										7
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								main.go
									
									
									
									
									
								
							| @@ -57,6 +57,13 @@ func init() { | ||||
| 		log.Fatalf("failed to connect to database: %v", err) | ||||
| 	} | ||||
|  | ||||
| 	// Check if database needs to be initialized (create tables) | ||||
| 	// does nothing if tables exist | ||||
| 	err = dbConn.InitializeDatabase() | ||||
| 	if err != nil { | ||||
| 		log.Fatalf("failed to initialize database: %v", err) | ||||
| 	} | ||||
|  | ||||
| 	uniqueVisits, err = dbConn.GetUniqueVisits() | ||||
| 	if err != nil { | ||||
| 		log.Fatalf("failed to get number of unique visits from database: %v", err) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user