diff --git a/src/dashboard/Data/Browser/Browser.react.js b/src/dashboard/Data/Browser/Browser.react.js index 1838d6cbdc..b6c04e3d7e 100644 --- a/src/dashboard/Data/Browser/Browser.react.js +++ b/src/dashboard/Data/Browser/Browser.react.js @@ -341,6 +341,7 @@ class Browser extends DashboardView { query.ascending(field) } + query.readPreference(this.getReadPreference()); query.limit(MAX_ROWS_FETCHED); let promise = query.find({ useMasterKey: true }); @@ -362,6 +363,7 @@ class Browser extends DashboardView { async fetchParseDataCount(source, filters) { const query = queryFromFilters(source, filters); + query.readPreference(this.getReadPreference()); const count = await query.count({ useMasterKey: true }); return count; } @@ -438,7 +440,7 @@ class Browser extends DashboardView { query.addDescending('createdAt'); } query.limit(MAX_ROWS_FETCHED); - + query.readPreference(this.getReadPreference()); query.find({ useMasterKey: true }).then((nextPage) => { if (className === this.props.params.className) { this.setState((state) => ({ @@ -846,6 +848,10 @@ class Browser extends DashboardView { return columns; } + getReadPreference() { + return this.context.currentApp.getReadPreference(); + } + renderSidebar() { let current = this.props.params.className || ''; let classes = this.props.schema.data.get('classes'); diff --git a/src/lib/ParseApp.js b/src/lib/ParseApp.js index d84b37a54a..b76fbfcb9c 100644 --- a/src/lib/ParseApp.js +++ b/src/lib/ParseApp.js @@ -204,7 +204,9 @@ export default class ParseApp { return Promise.resolve(this.classCounts.counts[className]); } } - let p = new Parse.Query(className).count({ useMasterKey: true }); + const query = new Parse.Query(className); + query.readPreference(this.getReadPreference()); + let p = query.count({ useMasterKey: true }); p.then(count => { this.classCounts.counts[className] = count; this.classCounts.lastFetched[className] = new Date(); @@ -214,7 +216,9 @@ export default class ParseApp { getRelationCount(relation) { this.setParseKeys(); - let p = relation.query().count({ useMasterKey: true }); + const query = relation.query(); + query.readPreference(this.getReadPreference()); + let p = query.count({ useMasterKey: true }); return p; } @@ -771,4 +775,8 @@ export default class ParseApp { }); return promise; } + + getReadPreference() { + return 'SECONDARY'; + } }