You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by gd...@apache.org on 2010/05/24 21:05:42 UTC
svn commit: r947766 -
/cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
Author: gdusbabek
Date: Mon May 24 19:05:42 2010
New Revision: 947766
URL: http://svn.apache.org/viewvc?rev=947766&view=rev
Log:
git a better message when no schema is defined. patch by gdusbabek, reviewed by jbellis. CASSANDRA-1087
Modified:
cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
Modified: cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java?rev=947766&r1=947765&r2=947766&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java Mon May 24 19:05:42 2010
@@ -43,7 +43,9 @@ import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.error.YAMLException;
import java.io.File;
+import java.io.FileFilter;
import java.io.FileInputStream;
+import java.io.FilenameFilter;
import java.io.IOError;
import java.io.IOException;
import java.io.InputStream;
@@ -366,7 +368,39 @@ public class DatabaseDescriptor
// don't load from xml anymore.
UUID uuid = Migration.getLastMigrationId();
if (uuid == null)
- logger.warn("Couldn't detect any schema definitions in local storage. I hope you've got a plan.");
+ {
+ logger.info("Couldn't detect any schema definitions in local storage.");
+ // peek around the data directories to see if anything is there.
+ boolean hasExistingTables = false;
+ for (String dataDir : DatabaseDescriptor.getAllDataFileLocations())
+ {
+ File dataPath = new File(dataDir);
+ if (dataPath.exists() && dataPath.isDirectory())
+ {
+ // see if there are other directories present.
+ int dirCount = dataPath.listFiles(new FileFilter()
+ {
+ @Override
+ public boolean accept(File pathname)
+ {
+ return pathname.isDirectory();
+ }
+ }).length;
+ if (dirCount > 0)
+ hasExistingTables = true;
+ }
+ if (hasExistingTables)
+ {
+ break;
+ }
+ }
+
+ if (hasExistingTables)
+ logger.info("Found table data in data directories. Consider using JMX to call org.apache.cassandra.service.StorageService.loadSchemaFromYaml().");
+ else
+ logger.info("Consider using JMX to org.apache.cassandra.service.StorageService.loadSchemaFromYaml() or set up a schema using the system_* calls provided via thrift.");
+
+ }
else
{
logger.info("Loading schema version " + uuid.toString());