瀏覽代碼

more default db -> sqlite

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@31601 15284696-431f-4ddb-bdfa-cd5b030d7da7
Hamish Bowman 17 年之前
父節點
當前提交
98c23b4ed1
共有 2 個文件被更改,包括 15 次插入8 次删除
  1. 3 3
      lib/init/gis_set.tcl
  2. 12 5
      lib/init/mke_mapset.c

+ 3 - 3
lib/init/gis_set.tcl

@@ -392,11 +392,11 @@ proc gisSetWindow {} {
                     } else {
                     #generate default DB definition, create dbf subdirectory:
                     set varfp [open $mymapset/VAR "w"]
-                    puts $varfp "DB_DRIVER: dbf"
-                    puts $varfp "DB_DATABASE: \$GISDBASE/\$LOCATION_NAME/\$MAPSET/dbf/"
+                    puts $varfp "DB_DRIVER: sqlite"
+                    puts $varfp "DB_DATABASE: \$GISDBASE/\$LOCATION_NAME/\$MAPSET/sqlite.db"
                     close $varfp
                     catch {file attributes $mymapset/VAR -permissions u+rw,go+r}
-                    file mkdir $mymapset/dbf
+#                    file mkdir $mymapset/dbf
                     #copy over the WIND definition:
                     catch {file copy $mymapset/../PERMANENT/DEFAULT_WIND $mymapset/WIND}
                     catch {file attributes $mymapset/WIND -permissions u+rw,go+r}

+ 12 - 5
lib/init/mke_mapset.c

@@ -31,15 +31,22 @@ int make_mapset (char *location, char *mapset)
 		perror("fopen");
 		G_fatal_error("Cannot create <%s> file in new mapset", buffer2);
 	}
-	fprintf (fd, "DB_DRIVER: dbf\n");
-	fprintf (fd, "DB_DATABASE: $GISDBASE/$LOCATION_NAME/$MAPSET/dbf/\n");
+	/* Use DB_DEFAULT_DRIVER from <grass/dbmi.h> instead of hardcoding? */
+	fprintf (fd, "DB_DRIVER: sqlite\n");
+	fprintf (fd, "DB_DATABASE: $GISDBASE/$LOCATION_NAME/$MAPSET/sqlite.db\n");
 	fclose (fd);
 	G_free(buffer2);
-	
+
+#ifdef KEEP_IF_DB_PER_MAP
+/* create similar dir structure for SQLite if a db file is to be
+   created for every vector map instead of one DB per mapset */
+	if(strcmp(DB_DEFAULT_DRIVER, "dbf") == 0 ) {
 /* Make the dbf/ subdirectory */
-	sprintf( buffer, "%s/%s/dbf", location, mapset );
-	if( G_mkdir( buffer ) != 0 )
+	    sprintf( buffer, "%s/%s/dbf", location, mapset );
+	    if( G_mkdir( buffer ) != 0 )
 		return -1;
+	}
+#endif
 
 	return(0) ;
 }