2013-08-12 45 views
2

我使用Cassandra 1.2.6與Astyanax。我使用Java創建了一個名爲DummyKeyspace的密鑰空間。我可以從cassandra-cli到達該密鑰空間,但不能從cqlsh。爲什麼?用Astyanax創建的Keyspace是不可見的cqlsh

這裏是我的Java代碼:

public void createKeyspace(Cluster cluster,String KEYSPACE_NAME,String STRATEGY, String REPLICA_FACTOR) throws ConnectionException 
    { 
     if(cluster.describeKeyspace(KEYSPACE_NAME) == null) 
     { 
      KeyspaceDefinition ksDef = cluster.makeKeyspaceDefinition(); 

      Map<String,String> stratOptions = new HashMap<String,String>(); 
      stratOptions.put("replication_factor", REPLICA_FACTOR); 

      ksDef.setName(KEYSPACE_NAME) 
       .setStrategyOptions(stratOptions) 
       .setStrategyClass(STRATEGY); 

      cluster.addKeyspace(ksDef); 
      System.out.println("Keyspace " + KEYSPACE_NAME + " created and added to cluster."); 
     } 
     else 
     { 
      System.out.println("Keyspace " + KEYSPACE_NAME + " already existed."); 
     } 
    } 

以下是錯誤當我試圖去實現它:

cqlsh> USE DummyKeyspace; 
Bad Request: Keyspace 'dummykeyspace' does not exist 
+2

那是copypasta嗎?當你使用'DummyKeyspace'時,你是如何得到'twitter2'的錯誤請求的? – Richard

+0

哦對不起,我忘了改變那部分。當我公開分享時,通常不會使用代碼段的實際名稱。所以這就是爲什麼它在那裏。編輯。 – shyos

+0

是的,它的代碼不是copypasta。 – shyos

回答

2

我創建了一個票關於這個(CASSANDRA-5879)。也許意圖是使用引號,但它不直觀。您也可以使用-k命令行參數到cqlsh。

3

嘗試在引號中加上keyspace ""